the length of a suboption must be at least 2;
the length of the Unique Digit option must be 3, and its name is
"Unique Digit", not "Uniq Digit";
the length of the other suboptions must be at least 3.
svn path=/trunk/; revision=13901
items don't run past the length left in the option, and, if they do, put
an indication into the protocol tree that they did.
The length returned by "tvb_strsize()" includes the terminating null
character.
svn path=/trunk/; revision=13900
Here is a patch that:
* packet-ber.c:
- Fixes handling tags longer than one octet (in
"packet-ber.c:get_ber_identifier") which consists of replacing "if (t &
0x80) break;" by "if (!(t & 0x80)) break;"
- Add debug info on the identifier when debug is enabled (I don't know if we want to keep this, but I find it useful)
- printf's a warning when packet-ber hits a constructed type (to remind that we eventually have to handle this)
- Add the display of unknown BER octet strings (this one was already submitted along with the initial Camel dissector but didn't got
included)
svn path=/trunk/; revision=13895
freeing our data structures, we can go through all those structures and
free up the hash tables associated with them, rather than just leaking
them.
svn path=/trunk/; revision=13891
whether the suboption data offset plus the suboption data length is >,
not >=, the end of the option data - the end of the option data is the
first byte *after* the option data.
For CableLabs string suboptions, use the right offset when fetching the
data.
svn path=/trunk/; revision=13884
enough, and fix them - and handle the already-fixed case similarly (note
that the length is bogus, and break out of the loop).
Put object header items into the protocol tree in the order in which
they appear in the packet.
For unknown subobjects, make the "Data (N bytes)" item cover only the
data, not the header (which is already covered).
Fix the offset in some calls.
svn path=/trunk/; revision=13879
But what's the right way to do instead? Just inserted a return, this should do no harm.
Could someone with more knowledge of this dissector review this change?
svn path=/trunk/; revision=13878
so don't check whether they've done so with "DISSECTOR_ASSERT()".
("proto_item_set_string()" and friends already do so.)
Fix indentation.
svn path=/trunk/; revision=13876
TO THE DISSECTOR DEVELOPERS, PLEASE FIX THIS: I could easily found several places where a g_assert is called, depending on the input packet data. NEVER DO THIS, as this crashes Ethereal simply by invalid packet data input!!!
svn path=/trunk/; revision=13868
update for q933
(and changes to move variable declarations to the start of a block since normal c compilers can not handle declarations in the middle of a block)
svn path=/trunk/; revision=13854
tables that are searched rather than dense tables that are indexed, so
there's no reason to tread payload types 130 and 131 specially.
svn path=/trunk/; revision=13844
Check whether krb5.h defines KEYTYPE_ARCFOUR_56 - not all versions do
(in particular, the Heimdal that comes with FreeBSD 4.6 doesn't).
packet-kerberos.h includes krb5.h if we hae Heimdal; we don't need to do
so in packet-spnego.c.
svn path=/trunk/; revision=13828
"dissect_per_restricted_character_string()", which is a guint32, not a
pointer. Re-generate packet-h225.c with the fixed asn2eth.
svn path=/trunk/; revision=13819
Read the LUN value into a local variable always and use that to pass to the scsi dissector since we can always use this value from the iscsi heade for COMMAND pdus (but not data/in/out)
svn path=/trunk/; revision=13791
callers, so that they can tell "no decrypted tvbuff because I couldn't
decrypt it" from "no decrypted tvbuff because it's not encrypted in the
first place". Set that based on the Kerberos seal algorithm field in
the SPNEGO Kerberos 5 wrap dissector code.
Use that to determine whether the GSS-API encapsulated data in LDAP is
encrypted or not., rather than using a heuristic.
Set the length of the SASL blob tvbuff based on the SASL length and the
length of the tvbuff from which it's consstructed, rather than setting
it to the SASL length.
svn path=/trunk/; revision=13780
Use the same code to handle payload types in sessions set up by SDP and
sessions set up by other protocols, rather than duplicating that code.
svn path=/trunk/; revision=13775
is wrong; cast the "guint8" value to "guint" to widen it, so that adding
1 to it doesn't overflow. (But I don't think that cast should be
necessary - the "usual arithmetic conversions" in C should widen the
value anyway.)
svn path=/trunk/; revision=13770
cerlare it as a parameter that is a struct/union and not a ref pointer to one.
this is ok since toplevel ref pointers are invisible in the wire encoding anyway.
unfortunatelky ethereal dce runtime needed to see that pointer to keep track of whisch one was a toplevel and which one wasnt.
implement a new api to call pointers which explicitely specifies whether the pointer is toplevel or embedded.
eventually all dce dissectors will use this new interface and the generic dissect_ndr_pointer() can be retired.
svn path=/trunk/; revision=13755
(Perhaps we should just get rid of the "tag interpretation" field and,
instead, have explicit hf_ values for each of the fields and subfields.)
svn path=/trunk/; revision=13747
samples, and give the URL of the V5 spec and some hints about how to
handle the private enterprise code in those samples.
For subtrees that cover structures, make the tree cover the entire
structure, not just the first field.
Add the flow sample type and extended data type to the protocol tree.
Set the protocol column name to capitalize "sFlow" the conventional way,
and remove the redundant "sFlow" from the Info column.
svn path=/trunk/; revision=13744
dissecting it; instead, fetch items from the tagged field as we go.
Also, check the length of the tagged field against a minimum length, if
there is one.
When adding the SSID, just fetch it directly as a string, and leave it
up to the string display code to deal with non-printable characters.
When dissecting a tagged field, don't zero out the "out_buff" buffer
beforehand, just stick in the terminating '\0' afterwards.
svn path=/trunk/; revision=13743
Rename the RequestDissector type to ReqRespDissector as it's used to
dissect status (response) lines as well as request lines.
svn path=/trunk/; revision=13738
beautifully fine.
this patch overrides the array, tells idl2eth to not generate code to unmarshall the conformance blob or the data for the array.
a handwritted replacement function is implemented in the template instead which prettifies the output a lot.
svn path=/trunk/; revision=13735
now that we can decrypt DCERPC
the dissection is not complete since idl2eth can not yet handle
all the weird extensions in the idl file yet.
svn path=/trunk/; revision=13729
- Give each IE its own subtree, with a summary at the root, and
details within the tree. It allows a condensed view when IE
trees are closed.
- Display country info in multiple protocol tree items, with
each (start channel, channels, power) triplet in a separate
item.
- Put a separate item into the protocol tree for each CFP
parameter.
svn path=/trunk/; revision=13713
should be used for ATM, so just use the data dissector for now.
The X.25 dissector registers itself as "x.25", not "x25".
svn path=/trunk/; revision=13711
fix the call to "rtp_add_address()" to match the new signature;
fix a problem with the codec displayed in the "Voip Graph"
for H245 "RequestMode" messages.
svn path=/trunk/; revision=13709
routine to handle that.
Don't format the value text into a buffer; just use
"proto_item_append_text()", so we don't run the risk of overflowing the
buffer.
Use "ip_to_str()" to format an IP address - don't roll our own code to
handle that.
Don't make "is_fhss" global - that causes its value to depend on the
last packet dissected, which isn't necessarily the right value for the
packet being dissected.
svn path=/trunk/; revision=13707
(cifs: dc's talking to eachother and when longhorn comes out: anyone wanting to talk dce to a dc!)
((this is an incredibly advanced feature well worthy of mentioning in NEWS))
svn path=/trunk/; revision=13690
Use "tvb_reported_length_remaining()", not "tvb_length_remaining()", in
the loop parsing the packet contents, so we throw an exception on a
short frame (to mark that it *is* a short frame).
Use "tvb_format_text()" for text strings, so we don't have a problem
with non-printable characters.
Use "ether_to_str()" to turn MAC addresses into strings.
Clean up indentation.
svn path=/trunk/; revision=13679
- better parsing for TIM info element: it parses 'bitmap control' byte
and provides list of AID for stations having power saving traffic.
- separate names for TIM elements. It helps to higlight beacons with
some properties, for example DTIM ones (dtim_count==0).
svn path=/trunk/; revision=13678
and Kerberos decryption is enabled in preferences
and if we have the keytab file available
then attempt to decrypt Secure LDAP
svn path=/trunk/; revision=13660
make spnego able to decrypt data wrapped inside
GSSAPI/SPNEGO/KRB5 arcfour-hmac
This code will be more etherealified and evolve into being able to link with MIT as well.
svn path=/trunk/; revision=13659
Replace the use of the undefined type krb5_keyusage (at least with heimdal)
in decrypt_krb5_data with the old int. The change wasn't complete anyway
as the .h file wasn't changed and the third implemenitation of
decrypt_krb5_data was left out also.
Disclaimer: I only made sure it compiles again, I don't know whether the
change has any side effects.
svn path=/trunk/; revision=13645
recursion instead of iteration means that packets with sufficiently
large lists can cause it to overflow the stack and crash.
svn path=/trunk/; revision=13643
("Data lengths larger than 2^32-1 are not encodable using primitive
tags"), so it doesn't need to be a "guint64" - but it *can* be that big,
so we should handle the 65536-2^32-1 case.
Don't gratuitously throw away the upper 24 bits of various lengths by
casting them to guint8.
Show signed values as such.
Don't use "match_strval()" - it returns a null pointer if it doesn't
find the value in the value_string table; instead, use "val_to_str()" so
we don't blow up if the value isn't found.
svn path=/trunk/; revision=13640