Wireshark compiles with -Wc++-compat and -Werror, at least on my machine
with llvm-gcc 4.2.1. Make that a standard -W flag, to keep code that
won't pass a C++ compiler from sneaking back in (except in the files
that can't currently be compiled with -Werror for various reasons).
svn path=/trunk/; revision=48535
Device->Host detection of ISO 7816 commands in PN532 packets.
From me: clean up indentation a bit in that section of the code.
svn path=/trunk/; revision=48530
failing. I suspect it has to do with my lack of understanding of glib's unit
test framework, not the code being tested.
svn path=/trunk/; revision=48519
the unit test part of the test suite. Once I know it's building and
running properly on the buildbots then I'll actually start writing tests.
svn path=/trunk/; revision=48517
all types of keys.
Make the tables in main static, so we don't initialize them at run time;
perhaps that'll help figure out why reassemble_test is crashing on
Windows apparently before even calling emem_init().
svn path=/trunk/; revision=48513
Iterate backwards through the linked list of identically-named fields in the lua
bindings since the list is, in fact, created backwards by
proto_register_field_init(). There is some question about whether that is
actually intended, but the rest of the code seems to assume it's normal so we
will too. It was possibly a performance consideration, though that's not
well-documented if so.
Either way, this is the simplest and safest method of fixing the issue with the
lua bindings. See the bug for more analysis.
svn path=/trunk/; revision=48495
be done on flows from one address to another; reassembly for protocols
running atop TCP should be done on flows from one TCP endpoint to
another.
We do this by:
adding "reassembly table" as a data structure;
associating hash tables for both in-progress reassemblies and
completed reassemblies with that data structure (currently, not
all reassemblies use the latter; they might keep completed
reassemblies in the first table);
having functions to create and destroy keys in that table;
offering standard routines for doing address-based and
address-and-port-based flow processing, so that dissectors not
needing their own specialized flow processing can just use them.
This fixes some mis-reassemblies of NIS YPSERV YPALL responses (where
the second YPALL response is processed as if it were a continuation of
a previous response between different endpoints, even though said
response is already reassembled), and also allows the DCE RPC-specific
stuff to be moved out of epan/reassembly.c into the DCE RPC dissector.
svn path=/trunk/; revision=48491
least one fuzzed capture contains them, and using ep_strndup() to copy
the line means that the actual amount of memory allocated for the copy
will be less than the length of the line, and code that parses the line
assuming that there are value_len+1 bytes in the buffer (including the
terminating NUL), such as the current parsing code, will break.
We should really have code in Wireshark to handle counted strings, and
have those be what we extract from packets. (And we should handle
non-UTF-8/non-UTF-16 encodings, and octet sequences that aren't valid
strings for their encoding, and handle display of invalid strings and
non-printable characters, and....).
Use g_ascii_ versions of various isXXX() and to{upper,lower}(), so we
don't get surprised by the behavior of the user's locale.
svn path=/trunk/; revision=48490
In Yet Another Protocol, implementation A neglected to set the padding bytes
to 0 and implementation B barfed on said padding (interestingly this
protocol's spec does not include the IETF-normal "receiver MUST ignore the
padding" blurb).
So:
Add the AVP to the dissection tree and add an expert info for when it's not
zero.
Also re-order a few of the hfs and remove a couple unneeded temporary
variables.
svn path=/trunk/; revision=48488