Look before we loop
Check the value of various key count parameters against the size of their
parent tag *before* we start looping on them.
Stick an expert error on the field and bound the loop at a sane point if the
count is bogus.
svn path=/trunk/; revision=42631
Put the code that's currently common to the ENC_ASCII and ENC_UTF_8
cases in tvb_get_ephemeral_string_enc() into tvb_get_ephemeral_string(),
and call tvb_get_ephemeral_string() in those cases. Skip the
tvb_ensure_bytes_exist() and ensure_contiguous() calls in the ENC_UTF_16
and ENC_UCS_2 cases, as they're unnecessary there.
Update the comment for tvb_get_ephemeral_string_enc().
Make tvb_get_ephemeral_stringz_enc() handle the encodings that
tvb_get_ephemeral_string_enc() does.
svn path=/trunk/; revision=42627
values in enums (and, while we're at it, add some error checking for
valid values). (The regenerated dissectors don't differ usefully from
the fixed dissectors, so we don't check them in.)
svn path=/trunk/; revision=42626
proto_tree_add_item() calls.
Change the "idl-light"-to-dissector generator to use ENC_NA for
structures and ENC_LITTLE_ENDIAN for bitmasks (are they always
little-endian, or should they check the data representation?). Also
change it to properly set the display format for FT_ABSOLUTE_TIME fields
(it now specifies whether to show local time, UTC, or UTC with a
1-origin day-of-year).
Change one routine in the template for the DRSUAPI dissector to use
ENC_UTF_16|ENC_LITTLE_ENDIAN with proto_tree_add_item() (the field it
dissects is known to be a string, so there's no need to check its data
type).
Regenerate the BUDB, BUTC, and DRSUAPI dissectors. (The generated BUTC
dissector handles pointers differently - either the old dissector was
wrong, or the generator is wrong, or the IDL for the protocol is wrong,
or the difference doesn't actually affect dissection.)
The generator doesn't currently handle hex values in enums correctly;
manually fix packet-dcerpc-drsuapi.h.
svn path=/trunk/; revision=42625
proto_tree_add_item() calls.
Add new "add_packet_field" method to the TreeItem class, taking a
protocol field (*not* a protocol), TvbRange, and encoding value as
arguments.
Add the ENC_ values to init.lua. Make them all hex #defines so
make-init-lua.pl can easily extract them.
Export tvb_unicode_strsize() for use by Lua (and elsewhere as desired).
Note that it handles UTF-16 and UTF-8, and fix the comment to note that
its count of hexadectets *does* include the null terminator (that's what
the code does).
svn path=/trunk/; revision=42621
proto_tree_add_item() calls.
Replaced the "little_endian" Boolean value with an "byte_order" value
containing the setting of the byte-order ENC_ bit.
svn path=/trunk/; revision=42607
- Fix two minor bugs which resulted in missing entries in packet details pane;
- Remove packet-rdp.h: It's not used elsewhere;
- Define 3 global fcns as static: they're only referenced within packet-rdp.c;;
- Localize some variable definitions & remove uneeded variable initializations;
- ...
- Fix whitespace and indentation.
svn path=/trunk/; revision=42605
proto_tree_add_item() calls.
Replaced the "little_endian" Boolean value with an "byte_order" value
containing the setting of the byte-order ENC_ bit.
svn path=/trunk/; revision=42604
proto_tree_add_item() calls.
Updated tools/process-x11-xcb.pl to support different encoding values
for different fields. Replaced the "little_endian" Boolean value with a
"byte_order" value containing the setting of the byte-order ENC_ bit.
Regenerated X11 fields from current x.org git.
svn path=/trunk/; revision=42601
Add wlan.ra field value to wlan.addr
The (hidden) field wlan.addr==xx:xx:xx:xx:xx:xx currently matches wlan.da,
wlan.bssid, wlan.sa and wlan.da fields but not wlan.ra field.
svn path=/trunk/; revision=42597
same, and that the routines to get "Unicode" strings are really doing
UCS-2 (and not doing anything about code values that aren't valid in
UCS-2 strings).
Have tvb_get_ephemeral_string_enc() separate cases for ASCII and UTF-8,
even though they're *currently* treated the same.
For FT_UINT_STRING, treat an encoding value of TRUE as meaning
"little-endian ASCII"; pass all other encodings through to
tvb_get_ephemeral_string_enc().
svn path=/trunk/; revision=42592
-> Support RFC 2153's Vendor Specific decode
-> Make more fields filterable by converting some add_text()'s to add_xyz().
-> Don't wrap call_dissector_only() within an if(tree){} block.
svn path=/trunk/; revision=42581