g_strlcpy() always return the size of strlen(src), so in case of truncation it could happen that offset_r > size or offset_e > size.
Fix it by adding new function protoo_strlcpy() which returns how many bytes was copied to dest buffer.
svn path=/trunk/; revision=42676
Other misc. changes:
-> Delete useless, duplicate assignment of offset to 0 in dissect_vsnp().
-> Change short seq # display filter so it's not the same as the seq # filter.
-> pppoe.dump.gz looks to be malformed, so remove unnecessary "remlen" code in
dissect_cp() and let the packets be displayed as malformed since they are.
-> Remove if (check_col()) checks.
-> Fix copy-and-paste of filter name for ipcp.opt.max_header.
svn path=/trunk/; revision=42661
preference values have been stored for a while now).
If a preference has not been changed from its default value, comment it out
when writing the preferences file. That way you won't get warnings about
some new "gui.*" (or other non-dissector) preference when switching between
SVN Wireshark and some older version.
Also fix some ommissions in copy_prefs() (preferences that were not copied).
(All these non-dissector preferences seem to require an awful lot of code;
it would be very nice to have a non-dissector preference registration API that
the GUI and core could use so we could eliminate a lot of this code.)
svn path=/trunk/; revision=42648
Merge .h files into .c files since .h files unused elsewhere;
Do whitespace, indentation & formatting cleanup.
packet-acn.c:
Fix 2 minor bugs wherein subtree not displayed in packet-details
because tree variable used in proto_tree_add_text() always NULL.
svn path=/trunk/; revision=42647
In one case, define our own size for a string buffer
(instead of using a magic constant 'BUFSIZ');
In a few cases: do some whitespace, indentation & reformatting cleanup.
svn path=/trunk/; revision=42634
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