aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ieee80211.c
AgeCommit message (Collapse)AuthorFilesLines
2004-03-23From Jouni Malinen: handle 802.11i RSN IE, and add new status and resultGuy Harris1-3/+203
codes for 802.11i. svn path=/trunk/; revision=10466
2004-02-25Use "tvb_get_string()" instead of allocating a (len+1)-sized buffer,Guy Harris1-2/+5
"tvb_memcpy()"ing to it, and putting in a null terminator; "tvb_get_string()" will check whether all bytes of the string are present before allocating the buffer, so that you don't leak memory if the copy throws an exception, and don't crash if the length is absurdly large. Use "tvb_memdup()" instead of allocating a buffer and "tvb_memcpy()"ing to it, so that an exception is thrown before you try to allocate the buffer (for the same reasons as listed above). Before allocating a buffer used when processing a chunk of data from a packet, get a pointer to the chunk with "tvb_get_ptr()", or check that the data is all there with "tvb_ensure_bytes_exist()", so that an exception is thrown before you try to allocate the buffer (for the same reasons as listed above). Fix up the lengths of the tvbuff used when dissecting ONC RPC opaque data with a particular dissector. svn path=/trunk/; revision=10236
2004-02-18From Pavel Kankovsky: deal with yet another gross non-standard 802.11Guy Harris1-13/+54
encapsulation by bridges - this one stuffs a complete Ethernet frame into the payload of a data frame. svn path=/trunk/; revision=10091
2004-01-27Supply a pseudo-header for all 802.11 packets; add an "fcs_len" field toGuy Harris1-6/+22
it, similar to the Ethernet pseudo-header's "fcs_len" field, and use it in the 802.11 dissector. svn path=/trunk/; revision=9884
2003-12-29Pull most of bytes_from_unparsed() into a new routine,Gerald Combs1-21/+24
hex_str_to_bytes(). Use the new routine to initialize any WEP keys we have defined. This has the side effect of fixing an overflow if the user entered a long WEP key. svn path=/trunk/; revision=9471
2003-12-20Do the special "if the first fragment we see is also the final fragment,Guy Harris1-3/+3
treat it as a reassembled frame" hack *only* for 802.11, as that's the only protocol we know of that requires it. svn path=/trunk/; revision=9367
2003-09-24From David Frascone: have an 802.11 dissector that byte-swaps the frameGuy Harris1-20/+50
control field, and have a preference in the LWAPP dissector to specify whether to use it or the regular 802.11 dissector, as some hardware sends out LWAPP-encapsulated 802.11 packets with a byte-swapped FC field. svn path=/trunk/; revision=8534
2003-09-23Get rid of some unnecessary includes.Guy Harris1-76/+61
Instead of using "dissect_vendor_specific_ie()" to dissect the WPA key data, turn the code to dissect a collection of 802.11 tagged parameters into a routine, use that routine when dissecting 802.11 management frames, and also use it to dissect the key data. svn path=/trunk/; revision=8513
2003-09-20From Richie:Guy Harris1-64/+60
the units for output power are dBm, not dbi; decode multiple start channel/number of channels/output power combinations; display the output power as a signed value. Additional change from Martijn Schipper to fix the display of the output power. Pass the tagged data value pointer to "dissect_vendor_specific_ie()". Don't special-case unknown tag values - use "val_to_str()" even for unknown tag values, and handle the value in the "default:" case. svn path=/trunk/; revision=8501
2003-09-20Give the tag number a value_string table, and have common code, ratherGuy Harris1-69/+30
than tag-specific code, put it, and the tag length, into the protocol tree. Make those fields FT_UINT8, as they're one byte long. Don't pass to "dissect_vendor_specific_ie()" variables whose names and values are the same as global variables. svn path=/trunk/; revision=8499
2003-09-15From Ritchie: dissect country information tag.Guy Harris1-14/+49
svn path=/trunk/; revision=8470
2003-08-28Make "process_reassembled_data()" do the check for fragmentation notGuy Harris1-30/+4
being complete and for fragmentation being trivial (i.e., the packet in question is both the first and last fragment). Have its callers *not* do that check - this lets "process_reassembled_data()" put in the "Reassembled in" item for fragments other than the last fragment. Add a "Reassembled in" field to TDS. svn path=/trunk/; revision=8295
2003-08-26Make the CRC-32 routines take a tvbuff and a length as arguments.Guy Harris1-2/+2
Rename "crc32()" so as not to collide with the one in zlib; rename "crc32_802()" to match. svn path=/trunk/; revision=8268
2003-08-26From Jesper Peterson:Guy Harris1-2/+2
Extract the FCS decoding section of the PPP_HDLC dissector to allow the CHDLC dissector to use the same routine. The ppp_options used for preferences has been renamed to fcs_options and exported via packet-ppp.h so CHDLC gets a separate (but identical) FCS preference. This means prefs.h has to be included before packet-ppp.h so a couple of ppp related files (packet-{gtp,null,raw,vj}.c) had their includes slightly re-arranged. From me: make the PPP/CHDLC FCS code use "crc32()" to check the 32-bit FCS. svn path=/trunk/; revision=8266
2003-08-26Extract the CRC-32 code from the 802.11 dissector into a separate file,Guy Harris1-78/+3
and use it in the Ethernet dissector as well, to check the FCS in Ethernet frames, if present. svn path=/trunk/; revision=8265
2003-06-24From Motonori Shindo:Guy Harris1-10/+13
parse the WEP keys every time they're changed, not just when we start up; make the description of the WEP keys in the preference more accurate. svn path=/trunk/; revision=7922
2003-06-05From Lars Roland: Replace bcmp() with memcmp(), add a missing quote to theGerald Combs1-7/+7
NSIS definition file. svn path=/trunk/; revision=7793
2003-06-03From Jeff Liu: Add support for WPA (Wi-Fi Protected Access) key in EAPOLGerald Combs1-2/+131
frames and WPA IE in 802.11 beacon and probe response frames. svn path=/trunk/; revision=7770
2003-05-28From Laurent Rabret: use "g_free()", not "free()", to free stuffGuy Harris1-2/+2
allocated with "g_malloc()" and related GLib routines. svn path=/trunk/; revision=7758
2003-05-25The last byte of "foo[N]" is "foo[N-1]", not "foo[N]".Guy Harris1-2/+2
svn path=/trunk/; revision=7740
2003-05-24Fix instances where the return value of snprintf() was being checked for -1,Gerald Combs1-3/+4
but not for <buf_size> or greater. Discovered by Timo Sirainen. svn path=/trunk/; revision=7731
2003-04-27Replace some unchecked malloc calls by g_malloc.Laurent Deniel1-6/+4
svn path=/trunk/; revision=7584
2003-04-20Add a pointer to an hf_ value for a "reassembled_in" field (which can beGuy Harris1-7/+9
null) to the "fragment_items" structure, and don't pass that value into "process_reassembled_data()", just have it use the value in the "fragment_items" structure passed to it. Make "process_reassembled_data()" capable of handling reassembly done by "fragment_add_seq_check()", and use it in the ATP and 802.11 dissectors; give them "reassembled_in" fields. Make "process_reassembled_data()" handle only the case of a completed reassembly (fd_head != NULL) so that we can use it in those dissectors without gunking the code up too much. svn path=/trunk/; revision=7513
2003-04-01From Solomon Peachy: add support for the latest stuff defined in theGuy Harris1-3/+15
draft 7.1 of 802.11g, plus a few response codes defined in 802.11b. svn path=/trunk/; revision=7392
2003-03-04When deciding whether we have enough data in a lower-level packet toGuy Harris1-2/+2
attempt reassembly of a higher-level packet that includes the lower-level packet, use "tvb_bytes_exist()" to check whether all the data that's to be included in the reassembly is available, rather than by checking whether the packet is short. Add some checks of that sort that were missing. Use the reported length of the packet when doing reassembly. Make the "iphdrlen" field of a "packet_info" structure be the length of the IP header in bytes, not in 4-byte words. svn path=/trunk/; revision=7274
2003-02-18From Martijn Schipper: fix the tag for the 802.11g ERP Information fieldGuy Harris1-2/+2
to match draft 6.1 of the 802.11g spec. svn path=/trunk/; revision=7168
2003-01-22Make all the stuff in the capability fixed field in a management frameGuy Harris1-34/+34
2-byte bitfields, as the capability field is 2 bytes long. svn path=/trunk/; revision=6980
2003-01-22From Jouni Malinen:Guy Harris1-3/+57
support for two new 802.11 elements used in the latest IEEE 802.11g draft version: ERP Information and Extended Support Rates; two new capabilities flags. svn path=/trunk/; revision=6978
2002-12-19Update reassemble.c/show_item and all callers to use FT_FRAMENUM for the ↵Ronnie Sahlberg1-3/+3
list of packets corresponding to a reassembled pdu svn path=/trunk/; revision=6807
2002-11-06From Solomon Peachy: support for new "wlancap" 802.11 extra-informationGuy Harris1-3/+3
header. Add overflow checks to "BYTES_ARE_IN_FRAME()", and cast all arguments to unsigned values (negative values should never be passed) to squelch compiler warnings. svn path=/trunk/; revision=6567
2002-10-31From Chris Waters: put the "wlan.fc.fromds" and "wlan.fc.tods" fieldsGuy Harris1-5/+9
into the protocol tree. svn path=/trunk/; revision=6524
2002-10-24Add a "fragment_add_seq_next()" to reassemble fragments that don't haveGuy Harris1-2/+2
sequence numbers or offsets and are thus assumed to be received in order with no duplicates or dropped fragments (e.g., for NetBIOS Frame, where 802.2 LLC guarantees in-order delivery to NetBIOS with no duplicates or dropped fragments). "show_fragment_tree()' and "show_fragment_seq_tree()" don't modify the "fragment_items" to which the "fit" argument points, so make that argument a "const fragment_items *". Make all the "fragment_items" tables "static" (as they're not used outside the modules defining them) and "const" (as they're not modified). Add support for reassembly of NetBIOS fragmented requests and responses. Get rid of an unnecessary include of "packet-tr.c" in the NetBIOS dissector, and make its table of dissection function pointers static. Fix some typos in the AppleTalk and NetBIOS dissectors. svn path=/trunk/; revision=6491
2002-10-21From Solomon Peachy: display "(correct)" or "(not verified)" for the WEPGuy Harris1-5/+17
ICV, depending on whether it was successfully verified or not. svn path=/trunk/; revision=6464
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-25/+25
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6117
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hJörg Mayer1-12/+4
equivalents for the toplevel directory. The removal of winsock2.h will hopefully not cause any problems under MSVC++, as those files using struct timeval still include wtap.h, which still includes winsock2.h. svn path=/trunk/; revision=5932
2002-07-31From Chris Waters: check 802.11 FCS if present.Guy Harris1-3/+36
svn path=/trunk/; revision=5918
2002-07-17From Joerg Mayer:Guy Harris1-6/+1
dftest.c: Remove #if-0-ed includes packet-ieee80211.c, packet-wtls.c, packet-afp.c, packet-wsp.c, packet-wtp.c, ethereal_gen.py: Remove redundant include varargs (already in snprintf.h, and required only for snprintf.h) Remove unused include of snprintf.h from files not using "snprintf()". svn path=/trunk/; revision=5889
2002-06-22Fetch the WEP IV before building a subtree for the WEP parameters, so weGuy Harris1-9/+16
don't end up with an empty tree for the parameters. Fetch the IV and key regardless of whether we're building a protocol tree; that ensures that we know we have the IV/key before we try to dissect stuff after it. svn path=/trunk/; revision=5741
2002-06-22"uint" is defined on all platforms; use "guint" instead.Guy Harris1-2/+2
svn path=/trunk/; revision=5735
2002-06-19Fix to WEP decoding, from Solomon Peachy.Guy Harris1-8/+5
svn path=/trunk/; revision=5706
2002-06-19Fix some bugs in the dissection of WEP-encrypted frames.Guy Harris1-26/+40
Put the WEP header tree under the top-level 802.11 tree, rather than putting it at the top level itself. svn path=/trunk/; revision=5702
2002-06-18From Solomon Peachy: do WEP decryption before reassembly.Guy Harris1-104/+107
Use "memset()" rather than "bzero()", as "memset()" is the official ANSI C routine (and you get an error when compiling with MSVC++ if you use "bzero()"). svn path=/trunk/; revision=5699
2002-06-18From Solomon Peachy: WEP cleanups, WEP decryption support and otherGuy Harris1-171/+558
mangling of the 802.11 dissector, and optional processing of an FCS at the end of the frame. When dissecting the frame-type-dependent part of the header, dissect all management frames (including ones with an invalid subtype) the same, and dissect all data frames (including ones with an invalid subtype) the same. svn path=/trunk/; revision=5696
2002-06-07Add "show_fragment_seq_tree()", which is like "show_fragment_tree()",Guy Harris1-64/+16
but for stuff reassembled with "fragment_add_seq()" or "fragment_add_seq_check()". Add a "fragment tag" string to the "fragment_items", so that packets with fragmentation errors can be properly flagged as having "Illegal fragments" or "Illegal segments" depending on the term used with the protocol in question. Make all the dissectors that can use "show_fragment_tree()" or "show_fragment_seq_tree()", and don't already use them, do so. svn path=/trunk/; revision=5644
2002-06-04Get rid of the "data_src" member of the "frame_data" structure; put itGuy Harris1-2/+2
in the "packet_info" structure instead, as we don't need a pointer for every single frame in the capture file, just for each frame for which we currently have an open "epan_dissect_t". svn path=/trunk/; revision=5614
2002-05-30Don't pass "tvb_reported_length_remaining(tvb, offset)" as the fourthGuy Harris1-2/+4
argument to "tvb_new_subset()" - just use -1 if the subset tvbuff is to run to the end of the parent tvbuff. svn path=/trunk/; revision=5597
2002-05-01Fix an error in a blurb.Guy Harris1-2/+2
svn path=/trunk/; revision=5327
2002-04-24From Joerg Mayer: get rid of extra arguments to capture routines.Guy Harris1-2/+2
svn path=/trunk/; revision=5233
2002-04-22Get rid of some unused variables and arguments.Guy Harris1-2/+1
svn path=/trunk/; revision=5221
2002-04-17Don't try to reassemble short frames - but do still pass them through atGuy Harris1-3/+1
least some of the reassembly mechanism, so we can deal with both bogus and real last fragment (display the bogus ones as unfragmented frames, treat the real ones as fragments). svn path=/trunk/; revision=5186