aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/vwr.c
AgeCommit message (Collapse)AuthorFilesLines
2014-03-16And another warning fix.Guy Harris1-1/+2
Change-Id: Ibbf3366d0075f7b367383a2950c9f0bc54ae194c Reviewed-on: https://code.wireshark.org/review/692 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-16Squelch some warnings by narrowing or widening some variables.Guy Harris1-6/+9
Change-Id: If3ad60532e8b7e74272683b254582d86653c777e Reviewed-on: https://code.wireshark.org/review/691 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-16Get rid of unused #defines and no-longer-used structures.Guy Harris1-56/+3
The #defines came from Radiotap, but this isn't Radiotap (I see no presence bits here), and Radiotap has to handle stuff that this code doesn't (such as, for example, Atheros Wi-Fi adapters that, annoyingly, pad the space between the 802.11 header and the 802.11 payload when in monitor mode, hence the "datapad" flag). Change-Id: I87ca3539e0f9254ab94cc8897bdf69e4574f0525 Reviewed-on: https://code.wireshark.org/review/690 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-16Reorganize the code.Guy Harris1-375/+448
Pull the packet data copying code into the routines that parse the rest of the record data. Have those routines directly fill in the metadata headers in the packet data, without bothering to fill in a structure first. As a result, those routines no longer can set phdr->caplen to a value different from phdr->len, so don't set WTAP_HAS_CAP_LEN. Have the existing sanity checking code cause the read to fail if the checks fail, and add some additional sanity checking. Use #defines for some offsets into the statistics header and trailer. Change-Id: Ie936683b96888961d6e2598131cc0eb6146b37e9 Reviewed-on: https://code.wireshark.org/review/689 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Clean up the setting of the len and caplen fields.Guy Harris1-48/+66
Always include the length of the metadata headers, as we're always copying them. Do a straightforward check to make sure the data length is >= 4 before subtracting out the FCS (which appears not to actually be an FCS; at least in the captures I've seen, it looks like random junk). Improve the comments for that code. Get rid of some tabs, in favor of spaces, while we're at it, and make the 3 sections of code where that's done more alike. Change-Id: Ica338cd492ac535833933a8b7cd5191217c5ab5b Reviewed-on: https://code.wireshark.org/review/685 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Use constants instead of vwr->STATS_LEN in some cases.Guy Harris1-10/+8
In some cases, we know, based on the FPGA code, what vwr->STATS_LEN is, so use that #define. While we're at it, replace some hardcoded numbers that represent the statistics trailer length with the appropriate #define. Also, combine two identical case arms for Ethernet into one. Change-Id: I0bdea8e5aab146094ad21fa7e67dca2913da688b Reviewed-on: https://code.wireshark.org/review/672 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Fix setting of STATS_LEN - it's what's in the file, not what we *generate*.Guy Harris1-2/+1
vwr->STATS_LEN is the length of the statistics trailer at the end of the packet, and it's the same for S2 and S3 versions of the WLAN card. It should *not* be set to the length of the metadata headers that we *generate and put in front of the packet data that we hand to our callers*. Get rid of a debugging message while we're at it. Change-Id: I465b5ba4dedb88f1f401d34439b44b16a4bb01cc Reviewed-on: https://code.wireshark.org/review/671 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Clean up naming and get rid of unused and duplicate definitions.Guy Harris1-197/+104
The so-called "radiotap headers" bear no resemblance to actual radiotap.org radiotap headers; there are no presence bits, for example. Get rid of the words "radiotap" and "radio tap", get rid of #defines that aren't used, get rid of duplicate definitions. Change-Id: I0bb6abda5d13bf20810dc865a567f4ec51a38056 Reviewed-on: https://code.wireshark.org/review/670 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Better document the offset of the MPDU in the packet data.Guy Harris1-9/+17
In the S1 FPGA code, copy the "MPDU starts at 4 or 6" comment. Get rid of misleading comment in the S2/S3 FPGA code; we're using the MPDU_OFF field from the private data structure, so we're not calculating *anything* at that point. Put in comments indicating what's being done at the point where those calculations are actually done. Change-Id: Ifda709a6b2aa7edad964f639086012c72c0a71fe Reviewed-on: https://code.wireshark.org/review/668 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Add a #define for the record header length, and use it.Guy Harris1-6/+21
Add a comment describing (some of) the record, while we're at it, and update another comment to reflect reality. Change-Id: Ia7f1432402b843b96983375c0e0842c030de0cee Reviewed-on: https://code.wireshark.org/review/667 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Some records have two statistics blocks; clarify that.Guy Harris1-4/+4
Change-Id: I139cd73f6fff84528e105f9246a4207aa48a68df Reviewed-on: https://code.wireshark.org/review/666 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15More use of vwr->STATS_LEN to clarify what code is doing.Guy Harris1-4/+9
Change-Id: I9292f7b054f7b71727409deb062200a0301db5ee Reviewed-on: https://code.wireshark.org/review/665 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Get rid of duplicate code.Guy Harris1-5/+0
Change-Id: I39515c13f667a62445e3498cf90742dc271e390c Reviewed-on: https://code.wireshark.org/review/664 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-15Use vwr->STATS_LEN instead of numbers, and eliminate redundant checks.Guy Harris1-8/+2
Instead of throwing in 48 and 64 as numbers, use vwr->STATS_LEN to indicate what the lengths are. Yeah, it has to be fetched at run time, but big deal. That also shows that, as we've already rejected records whose size is less than vwr->STATS_LEN, we don't have to check for that, so eliminate those checks. Change-Id: Id4822b3e5a02abfffb2da96a50999e36548a4279 Reviewed-on: https://code.wireshark.org/review/663 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-14len and caplen are derived independently, so set WTAP_HAS_CAP_LEN.Guy Harris1-3/+3
Fix presumed typo while we're at it. Change-Id: Ic8ae6e6669e5c5fc618ec2516af98ba2390487ce Reviewed-on: https://code.wireshark.org/review/660 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-03-04Remove all $Id$ from top of fileAlexis La Goutte1-2/+0
(Using sed : sed -i '/^ \* \$Id\$/,+1 d') Fix manually some typo (in export_object_dicom.c and crc16-plain.c) Change-Id: I4c1ae68d1c4afeace8cb195b53c715cf9e1227a8 Reviewed-on: https://code.wireshark.org/review/497 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-02-25Remove trailing whitespaceBill Meier1-1/+1
Change-Id: I8116f63ff88687c8db3fd6e8e23b22ab2f759af0 Reviewed-on: https://code.wireshark.org/review/385 Reviewed-by: Bill Meier <wmeier@newsguy.com> Tested-by: Bill Meier <wmeier@newsguy.com>
2014-01-02No seek-read routines use the length argument, so eliminate it fromGuy Harris1-3/+2
wtap_seek_read(). svn path=/trunk/; revision=54570
2014-01-02Don't pass the wtap * to a routine if it's not needed.Guy Harris1-22/+17
svn path=/trunk/; revision=54565
2014-01-02Fill in the struct wtap_pkthdr in the seek-read routine.Guy Harris1-41/+56
svn path=/trunk/; revision=54564
2013-12-20Change G_GINT64_CONSTANT(xxxxU) to G_GUINT64_CONSTANT(xxxx)Jakub Zawadzki1-4/+4
svn path=/trunk/; revision=54314
2013-12-03wiretap: start using <wsutil/pint.h>Jakub Zawadzki1-25/+25
svn path=/trunk/; revision=53764
2013-11-21Get rid of C++ comments.Guy Harris1-1/+1
svn path=/trunk/; revision=53486
2013-11-21Cope with empty VWR files (bug 9428)Martin Mathieson1-2/+9
svn path=/trunk/; revision=53475
2013-11-08The "file types" we have are actually combinations of types andGuy Harris1-2/+2
subtypes, e.g. Network Monitor version 1 and Network Monitor version 2 are separate "file types", even though they both come from Network Monitor. Rename various functions, #defines, and variables appropriately. svn path=/trunk/; revision=53166
2013-10-16Fix various: whitespace, comments & etc.Bill Meier1-612/+624
Add editor modelines. svn path=/trunk/; revision=52639
2013-10-15Add another cast.Gerald Combs1-1/+1
svn path=/trunk/; revision=52622
2013-10-15Add casts to fix some shortening errors.Gerald Combs1-4/+4
svn path=/trunk/; revision=52621
2013-10-15limit the values written to phdr.(cap)len to guint32, not to guint16Martin Kaiser1-6/+6
We read a two-byte length field and add a constant number of header bytes to this length, so we could in theory be larger than guint16. svn path=/trunk/; revision=52619
2013-10-15code review of parse_s1_W_stats()Martin Kaiser1-2/+16
range check for array index don't assign the result of pntohs() to a gint16 range check for the values stored in phdr.(cap)len svn path=/trunk/; revision=52618
2013-10-14do some range checks when reading vwr filesMartin Kaiser1-14/+14
don't assign the output of pntoh24() to a gint16 unfortunately, vwr detection does not work reliably and many pdf files are recognized as vwr - this commit should prevent wireshark from crashing when it tries to load the USB 2.0 spec as pdf ;-) svn path=/trunk/; revision=52599
2013-09-15From Tom Cook via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9147 ↵Alexis La Goutte1-3/+3
Long / short guard interval not properly read from IxVeriWave vwr files The short / long guard interval is located in a different spot than the current vwr reader looks. svn path=/trunk/; revision=52047
2013-08-10Initialize float variables with float constants, not double constants,Guy Harris1-6/+6
and assign float constants, not double constants, to float variables. Floating-point constants are double by default; you have to add "f" to the end to make them float. This squelches 64-bit-to-32-bit warnings. svn path=/trunk/; revision=51289
2013-08-10IxVeriwave 11ac patch (bug 8912) from Tom Cook.Martin Mathieson1-528/+516
This was the 4th patch, but also: - use gmalloc0() to allocate vwr struct. Otherwise, valgrind says that many of fields were still uninitialised when parse_s1_W_stats later read them - whitespace tidyup, got rid of remaining tabs and trailing whitespace Did a fair bit of fuzz-testing without seeing any problems. svn path=/trunk/; revision=51248
2013-06-16Have the seek-read routines take a Buffer rather than a guint8 pointerGuy Harris1-76/+66
as the "where to put the packet data" argument. This lets more of the libwiretap code be common between the read and seek-read code paths, and also allows for more flexibility in the "fill in the data" path - we can expand the buffer as needed in both cases. svn path=/trunk/; revision=49949
2013-06-04Fix an unintialized-value-used warning that Valgrind detected in the captureJeff Morriss1-6/+6
file attached to https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8760 : When searching for a signature, don't search past the end of the record. svn path=/trunk/; revision=49742
2013-06-04Get rid of trailing white space and a few tabs.Jeff Morriss1-22/+22
svn path=/trunk/; revision=49741
2013-06-04Fix the wiretap fuzz failure reported in ↵Jeff Morriss1-1/+7
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8760 : Check that the record length we got out of the file is at least as big as stats block trailer; if not, declare the file bad. svn path=/trunk/; revision=49739
2013-06-02Pass the read_rec_data routines a wtap_pkthdr pointer, and have themGuy Harris1-33/+37
fill in that structure, so that it's filled in by both the read and seek-read routines. svn path=/trunk/; revision=49703
2012-12-27Do not call wtap_file_read_unknown_bytes() orGuy Harris1-6/+6
wtap_file_read_expected_bytes() from an open routine - open routines are supposed to return -1 on error, 0 if the file doesn't appear to be a file of the specified type, or 1 if the file does appear to be a file of the specified type, but those macros will cause the caller to return FALSE on errors (so that, even if there's an I/O error, it reports "the file isn't a file of the specified type" rather than "we got an error trying to read the file"). When doing reads in an open routine before we've concluded that the file is probably of the right type, return 0, rather than -1, if we get WTAP_ERR_SHORT_READ - if we don't have enough data to check whether a file is of a given type, we should keep trying other types, not give up. For reads done *after* we've concluded the file is probably of the right type, if a read doesn't return the number of bytes we asked for, but returns an error of 0, return WTAP_ERR_SHORT_READ - the file is apparently cut short. For NetMon and NetXRay/Windows Sniffer files, use a #define for the magic number size, and use that for both magic numbers. svn path=/trunk/; revision=46803
2012-12-21Squelch implicit 64-bit-to-32-bit conversion warnings.Guy Harris1-3/+3
svn path=/trunk/; revision=46650
2012-10-16Add wtap_pseudo_header union to wtap_pkthdr structure.Jakub Zawadzki1-2/+2
Use pkthdr instead of pseudo_header as argument for dissecting. svn path=/trunk/; revision=45601
2012-10-06Remove unused variable caught by cppcheck.Evan Huus1-2/+1
svn path=/trunk/; revision=45344
2012-09-20We always HAVE_CONFIG_H so don't bother checking whether we have it or not.Jeff Morriss1-2/+0
svn path=/trunk/; revision=45015
2012-07-27It seems that the length should unsigned, not signed.Michael Tüxen1-1/+1
This fixes part of https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7533 which deals with Crash in vwr.c while reading the capture file. svn path=/trunk/; revision=44075
2012-07-09From Evan Huus:Anders Broman1-6/+1
Grab-bag of unused variables. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7452 svn path=/trunk/; revision=43616
2012-06-28Update Free Software Foundation address.Jakub Zawadzki1-1/+1
(COPYING will be updated in next commit) svn path=/trunk/; revision=43536
2012-05-27vwr_read_rec_header()'s return value is used only to distinguish successGuy Harris1-16/+9
(read a record header) from failure (got an EOF or an error). Make it just return a Boolean. If it fails in vwr_read(), don't overwrite *err_info (yes, vwr_read_rec_header() might have set *err_info, so don't lose - and leak! - the value it returned) - trust vwr_read_rec_header(), or the routines it calls, to have set it. (If there's a code path where that doesn't happen, that code path needs to be fixed; the setting of *err_info in vwr_read() should *not* be restored.) Thanks to Evan Huus for finding a useless variable with cppcheck, and reporting it in bug 7295, provoking me to look at this. svn path=/trunk/; revision=42865
2012-05-04file_seek() used to be a wrapper around fseek() or gzseek(), both ofGuy Harris1-7/+2
which could use lseek() and were thus expensive due to system call overhead. To avoid making a system call for every packet on a sequential read, we maintained a data_offset field in the wtap structure for sequential reads. It's now a routine that just returns information from the FILE_T data structure, so it's cheap. Use it, rather than maintaining the data_offset field. Readers for some file formats need to maintain file offset themselves; have them do so in their private data structures. svn path=/trunk/; revision=42423
2012-05-01Remove unnecessary null-pointer check.Guy Harris1-4/+2
svn path=/trunk/; revision=42376