a dissector bug. This keeps buildbot from opening unnecessary bugs
during fuzz testing.
When we create a new scsi_task_data_t struct make sure all of its
members are initialized.
svn path=/trunk/; revision=15278
-use g_snprintf instead of sprintf and snprintf
-use g_strdup_printf where appropriate
-remove #include "snprintf.h" (as only g_snprintf should be used)
-replace some more alloc/realloc/calloc/free with their glib pendants
svn path=/trunk/; revision=15264
Eric Wedel
Add a preference to RPC (default off) that will heuristically attempt to find
PDUs starting in the middle of a segment.
svn path=/trunk/; revision=15260
the length and object class items into that tree. Put the object class
item into the tree as a visible item, rather than as a hidden item and
as a text entry.
Add some additional length checks.
svn path=/trunk/; revision=15258
There's no need to build a list of all the options and then dissect them
individually; just have one loop that dissects them. (The full list
wasn't being freed, so we were leaking memory.)
Add some more sanity checks.
Clean up a bunch of other things.
svn path=/trunk/; revision=15255
Fix the sizes of some items to match what's in the I-D and what's being
fetched from the packet.
Check for the length of items before doing *anything* with the item,
including fetching the data from the packet. Just put a "bad length"
indication into the protocol tree; don't abort the dissection (we can
just move on to the next TLV).
svn path=/trunk/; revision=15254
user by crashing due to a null pointer dereference, punish the dissector
writer by saying he or she didn't bother providing an explanation of the
error.
The exception message isn't a const string any more; make the
"exception_message" argument to "show_exception()" a "char *", not a
"const char *".
svn path=/trunk/; revision=15251
message not be const (as we generate messages with "g_strdup_sprintf()",
which means they need to be freed; using a null message means that we
don't have to use a special string for exceptions with no message, and
don't have to worry about not freeing that).
Have THROW() throw an exception with a null message pointer. (This
means that you crash if you throw DissectorError with THROW(). Don't do
that - it means you don't get a more detailed explanation of the
dissector problem. Use the DISSECTOR_ASSERT, etc. macros in
epan/proto.h instead.)
Free the exception message for DissectorError, as it's mallocated.
svn path=/trunk/; revision=15250
"tvb_fake_unicode()" never returns a null pointer, so there's no need to
check for it; there's also no need to check that it's not an empty
string before freeing it, as it's always assigned a g_malloc()ed string.
It also takes as an argument the number of Unicode characters in the
string, not the number of bytes in the string.
Use "format_text()" when adding a string to the Info column, in case
it has non-printable characters.
Don't use "proto_tree_add_string_format()" if you don't have to.
svn path=/trunk/; revision=15239
transfer context; that way, we don't have to make "di->xfer" a "const"
pointer, and can thus pass it to "g_free()" (if non-null) without
the compiler whining at us.
Note that telling the user to "click on ASSOC request" is not the best
thing to do, unless we simply cannot determine the right ASSOC request
to click on.
svn path=/trunk/; revision=15238
DissectorError. In packet-kerberos.c, restore pinfo->private_data if
we throw an exception, which keeps the SMB dissector from throwing
a DissectorError. Initialize variables in other places to squelch
valgrind warnings.
svn path=/trunk/; revision=15235
here are the highlights of what's fixed:
1) Decoding of vendor-defined types
2) Decoding of some event notification parameters (not all)
3) Decoding of ABSTRACT-SYNTAX&Type
4) Decoding of BACnetTimeStamp
5) Some problems with context-tagged values (like booleans)
6) Continuation segments - don't try to decode them since you can't
start mid-PDU
7) Removed some excessive levels of subtrees
svn path=/trunk/; revision=15226
Some changes that I made to flesh out GPRS message parsing. More information is displayed about the various frame formats. I have also added some code to parse XID parameters in the U frame. I have also fixed a couple of display bugs in the GSM and GPRS LLC parser.
svn path=/trunk/; revision=15224
Among the improvements are:
- fixes to call-tracking (it's now less likely to confuse two separate
calls, for instance)
- improvements to Information Element dissection (clearer dissection,
dissects more IE types, easier to extend)
- you can now filter on the content of DTMF packets
- Analysis of timestamps (calculation of absolute timestamp, and packet
lateness).
- fixed a couple of assertion failures in subtle corner-cases.
negative relative times:
- get_timedelta()
- addtime()
- ftype-time.c:relative_val_from_unparsed()
I've also moved get_timedelta() and addtime() out of calldata.c into a
new file, epan/nstime.c, as I needed to use them in a dissector I'm
working on (and they therefore needed to go into libethereal).
svn path=/trunk/; revision=15201
the strings mmse got from tvb_get_string were never released anyway
so this would resolve significant memory leakage in mmse.
there are still memleaks in mmse but one step at a time
svn path=/trunk/; revision=15197
Unfortunately, this is *very* safe now as it will mark a lot of DCE/RPC packets as malformed, thus the reassembling code won't work with most packets :-(
I've replaced this with the correct check and used THROW(ReportedBoundsError) instead which is hopefully the right error in this case.
BTW: could someone please add a description of the ReportedBoundsError vs. BoundsError to the code as I still don't get it.
In addition: Use a toplevel tree item to display the DCE/RPC defragmentation just as it's done in the TCP desegmentation code.
svn path=/trunk/; revision=15188
it should be declared in a header file, so that the plugins can #include
the header file rather than using a possibly-out-of-date private
declaration, and so that it's clearer that it shouldn't be static).
svn path=/trunk/; revision=15153
might be irrelevant in this case, but we might as well not throw them
out.
Clean up some code that sets "cdata->flags".
svn path=/trunk/; revision=15149
http://cvs.fedora.redhat.com/viewcvs/rpms/ethereal/FC-4/:
In the LPD dissector, make lpd_client_code a value_string so that we
don't segfault. Do the same for lpd_server_code, although it's not
strictly necessary.
Check to see if htmlview is installed, and use it as our HTML viewer.
The Fedora RPM has other patches, but I'm not sure if they should
be applied.
svn path=/trunk/; revision=15143
data dissector might be overkill, as it causes each of those chunks to
be dumped in hex in Tethereal output - along with whatever's done with
the data reassembled from those chunks.
svn path=/trunk/; revision=15141
dissector says "sorry, I need even more data in this packet", don't flag
that packet as being reassembled in that frame. Indicate that we should
perhaps do all the "partial reassembly" stuff in
"fragment_set_partial_assembly()", which would obviate the need for the
hack in the TCP dissector.
Clean up indentation.
svn path=/trunk/; revision=15139
that they are not longer than the reported length of the tvb.
this triggers some bugs since in packet-ber we are a bit too lax in setting reported_length of the tvb_new_subset() tvb.
this cause short kerberos packets to not be decoded at all and the same for other short asn based packets as well.
fix some of these instances.
svn path=/trunk/; revision=15127
hf_qos_buf_ac, hf_qos_buf_load and hf_qos_buf_state
but failed to add them to the hf_ array. Commented out their
use for now.
svn path=/trunk/; revision=15116
Additionally in dissectors/packet-ansi_map.c:
Flag unused parameters as such and remove dummy
param = param;
statements.
svn path=/trunk/; revision=15114
if some function takes, for example, a "char *" as an argument, but
you're passing it an "unsigned char *", you don't squelch the warning by
removing the include of the header that declares that function (you then
get warnings about the function not being declared, at least with some
compilers), you put in a cast (if the signedness doesn't matter) or
arrange that you pass a "char *".
svn path=/trunk/; revision=15110
a patch that adds support for
dissecting packets captured on ML-, LS- and AS PICs
using Multi-link PPP encapsulation,
running JUNOS 7.3 or higher;
additional there i did some clean-up in the
juniper dissector that makes future addition
of JUNIPER_DLTs easier;
svn path=/trunk/; revision=15081