Commit Graph

2568 Commits

Author SHA1 Message Date
Guy Harris
606a29c55c Check the containing item length in some loops.
In some loops, don't loop just until we get an error, stop when we run
out of data to parse.

Also, add some comments to indicate what we know about lengths at
various points, before we do something with the length that happens to
assume what we know.  Add some checks that this auditing found
necessary.
2010-02-07 17:47:31 -08:00
Guy Harris
7906cae611 Use #defines rather than sizeof.
Use ForCES_HDRL, TLV_HDRL, and ILV_HDRL instead of various sizeof's, to
make it clearer what certain tests ensure are true (as, in other cases,
the #defines are subtracted from values that should be, at that point,
ensured not to be less than the #define in question).
2010-02-07 16:05:46 -08:00
David Horn
2a7e2246c7 RFC 5006 support.
Reviewed-By: Guy Harris <guy@alum.mit.edu>
2010-02-07 14:52:07 -08:00
Guy Harris
aeae58e079 Print bit numbers in decimal, not hex - it's not the presence bit field,
its the index of a bit from that field.
2010-02-06 19:21:30 -08:00
Guy Harris
20194339f9 Constify a bunch of stuff. 2010-01-26 20:14:23 -08:00
Guy Harris
44c1734ba8 Put PRIu64 on the same line as the rest of the format string. 2010-01-26 18:50:53 -08:00
Guy Harris
c404e37740 Get rid of some no-longer-necessary casts. 2010-01-26 18:45:58 -08:00
Guy Harris
6ee5663a02 Add TCHECKs, make length variables 32 bits.
Add TCHECK/TCHECK2 calls to make sure we are within the packet boundary
before fetching data.  Make some length variables that could in theory
have values that don't fit in 16 bits 32 bits long.

Get rid of blanks before newlines.
2010-01-26 18:43:22 -08:00
Guy Harris
12604e27a3 Use EXTRACT_16BITS and EXTRACT_32BITS to extract values from a packet.
There's no guarantee that those values are aligned on the appropriate
boundary, nor is there a guarantee that accessing misaligned values will
behave as desired.
2010-01-26 18:37:41 -08:00
Guy Harris
19b5602a0c Use EXTRACT_16BITS to extract big-endian 16-bit quantities from the packet.
There's no guarantee that those quantities will be properly aligned, nor
is there any guarantee that fetching an improperly-aligned quantity will
work as desired.
2010-01-26 18:35:53 -08:00
Guy Harris
67c76d583f Use EXTRACT_16BITS() and EXTRACT_32BITS() to fetch integral values.
Use EXTRACT_16BITS() and EXTRACT_32BITS() to fetch 16-bit and 32-bit
big-endian quantities from the packet, as there's no guarantee that a
given 16-bit quantity will be aligned on a 2-byte boundary or that a
given 32-bit quantity will be aligned on a 4-byte boundary, nor is there
a guarantee that unaligned accesses will succeed (they might trap, or
they might not fetch an unaligned quantity).
2010-01-26 17:56:36 -08:00
Randy Sofia
0e5561f7c7 Add some information about the symbolic references to TCP flags.
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2010-01-26 15:46:37 -08:00
Lucas C. Villa Real
c0a91acf9b Enhance NFS access request messages.
When debugging NFS operations one may find it easier to get the actual access
flags decoded rather than having to look up the NFS access flags to find which
permissions were requested by the client.

Reviewed-by: Guy Harris <guy@alum.mit.edu>
2010-01-26 12:09:24 -08:00
Guy Harris
071cdba2b3 Handle the 48-byte and 64-byte Linux USB headers differently; for now,
the difference isn't major, but it might be more important later.
2010-01-25 15:25:33 -08:00
Guy Harris
d033ee2f3e Squelch some int-vs-long errors. 2010-01-10 18:36:45 -08:00
Guy Harris
095439d48a Remove more non-C89 features.
No array initialization with [index] =, no // comments; some compilers
that might be used to compile tcpdump don't support them.
2010-01-10 18:23:11 -08:00
Guy Harris
6003dc5285 Get rid of BIG_ENDIAN and LITTLE_ENDIAN definitions.
The configure script doesn't define BYTE_ORDER, so they can't validly be
compared against BYTE_ORDER; don't leave them around for people to think
they can.
2010-01-10 18:00:08 -08:00
Guy Harris
64d92662c3 Don't use bitfields in on-the-wire structures.
C doesn't guarantee that bit fields will be in any particular order.
2010-01-10 17:56:49 -08:00
Guy Harris
66a566eded Put forces.h into the release tarball. 2010-01-10 14:44:35 -08:00
Guy Harris
832716b73d Fix a bunch of warnings in the ForCES printer.
Get rid of C++/C99-style comments while we're at it; some C compilers
reject them.
2010-01-10 14:16:41 -08:00
Guy Harris
e00f13631d raw_if_print() isn't yet a new-style print routine. 2010-01-10 13:34:22 -08:00
Michael Richardson
83344948fe added -vv/-vvv and -vvvv test output 2010-01-10 14:59:18 -05:00
Michael Richardson
d0e01819c0 IETF FORCES protocol printer, from Jamal Hadi Salim <hadi at cyberus.ca. 2010-01-10 14:49:46 -05:00
Michael Richardson
b45fabd132 This commit makes ipnet_if_print the first NDO aware top-level
printer.
Merge commit 'origin/master'

Conflicts:
	netdissect.h
2010-01-10 14:36:07 -05:00
Guy Harris
878889bc21 ether_encap_print() is a utility for use by printers for protocols that
use Ethernet types, to call the appropriate printer routine for the
encapsulated type.  IPNET is the only protocol using IPNET types, so
ipnet_encap_print() isn't needed.
2010-01-10 14:32:12 -05:00
Michael Richardson
94feff51db Look for core dumps, and fail test if some are found 2010-01-10 14:28:59 -05:00
Michael Richardson
83f828aa57 test cases for Solaris print-ipnet. Confirms ndo printer code works 2010-01-10 14:28:33 -05:00
Michael Richardson
accfcf9a24 make new list of printers that take ndo argument, and use it as appropriate 2010-01-10 14:27:33 -05:00
Guy Harris
b4883f0947 Update config.guess and config.sub to the latest versions. 2010-01-08 10:37:35 -08:00
Guy Harris
5d2acbcf57 Don't warn about the non-use of some arguments to rsvp_obj_print() if we
don't have libcrypto, as we can't use them if we don't.
2010-01-05 20:24:44 -08:00
Guy Harris
a10a7c2868 Include ipnet.h in the distribution. 2010-01-05 20:17:26 -08:00
Guy Harris
e9eff7f57e Add support for DLT_IPV4 and DLT_IPV6.
While we're at it, clean up some whitespace.
2010-01-04 12:11:04 -08:00
Guy Harris
16e7d6ed56 When removing conftest*, use "-r", to clean up OS X .dSYM turds. 2010-01-02 15:59:43 -08:00
Guy Harris
ebc9a33b11 Fix some problems that show up in autoconf 2.64 and later. 2010-01-02 15:29:06 -08:00
Ken Bantoft
635b50e7ae Update CHANGES for 4.0.2 release 2009-12-21 20:38:10 -05:00
Guy Harris
576af3ab43 When printing a list of link-layer types for -L, give the name of the
device for which they're being reported, so if no -i flag was given
people don't think it's something such as the union of of all link-layer
types supported by all devices, and, if we can determine whether the
device supports monitor mode (with libpcap 1.0.0 and later), indicate
whether the link-layer types are the ones supported when not in monitor
mode (if -I wasn't specified) or when in monitor mode (if -I was
specified), so people don't wonder why some types aren't available (as
some are available only in monitor mode, and others are available only
when not in monitor mode, on some platforms).
2009-12-01 00:39:54 -08:00
Guy Harris
b050a1e4e0 Squelch a couple of compiler warnings. 2009-11-27 12:03:25 -08:00
Guy Harris
d8b1b0fa48 Include "netdissect.h" in print-ip6.c, and move icmp6_print's
declaration out from inside #if 0/#endif, to get it declared in
print-ip6.c.
2009-11-26 15:07:47 -08:00
Guy Harris
5f947ac9b4 XXX_if_print() routines are not passed a "struct netdissect_options *",
so ipnet_if_print() can't expect one.

ipnet_print() isn't called from outside print-ipnet.c, so make it static.
2009-11-26 14:57:38 -08:00
Guy Harris
0c3032509b ether_encap_print() is a utility for use by printers for protocols that
use Ethernet types, to call the appropriate printer routine for the
encapsulated type.  IPNET is the only protocol using IPNET types, so
ipnet_encap_print() isn't needed.
2009-11-25 13:26:52 -08:00
Michael Richardson
8c47da620f netdissect.h did not actually declare ipnet_if_print, make it visible 2009-11-24 21:38:56 -05:00
Michael Richardson
052094d865 updated print-ipnet.c to use netdissect options structure 2009-11-24 21:31:04 -05:00
Darren Reed
b116cd9ac4 The patches attached to this email are required to get a fully working tcpdump
on OpenSolaris, or Solaris Express Community Edition, build 125 and later.

The attached patch introduces support for printing out the IPNET headers used
for packet capture inside of zones that share their networking with the global
zone and for packets "transmitted" between zones.

tcpdump 4.0.0 will ship with builds 129 and later of OpenSolaris/SXCE and
when run as root with the '-L' option, should behave as below to indicate that
the system is fully functional:

Data link types (use option -y to set):
 DOCSIS (DOCSIS) (printing not supported)
 IPNET (Solaris IPNET)
 EN10MB (Ethernet)

Cheers,
Darren
2009-11-24 21:20:25 -05:00
Guy Harris
1b15c42270 Remove print-X.out, as it collides with print-x.out on systems with
case-insensitive file systems; print-capX.out has the same contents as
the most recent version of print-X.out, and doesn't collide with
print-x.out.
2009-11-16 16:36:37 -08:00
Guy Harris
5cd3a3c6af Propagate
commit 0a029bab08
	Author: Michael Richardson <mcr@sandelman.ottawa.on.ca>
	Date:   Sat Nov 14 20:51:44 2009 -0500

	    updated print-flags test case to have new TCP flags

to print-capXX.out, prior to removing print-XX.out (again - see previous
commits; it collides with print-xx.out on systems with case-insensitive
file systems).
2009-11-16 16:35:24 -08:00
Guy Harris
db7d0eec88 print-XX.out collides with print-xx.out on systems with case-insensitive
file systems; we've propagated the latest version of print-XX.out to
print-capXX.out, so get rid of print-XX.out.
2009-11-16 16:34:14 -08:00
Guy Harris
fa84e75d96 Propagate
commit 0a029bab08
	Author: Michael Richardson <mcr@sandelman.ottawa.on.ca>
	Date:   Sat Nov 14 20:51:44 2009 -0500

	    updated print-flags test case to have new TCP flags

to print-capXX.out, prior to removing print-XX.out (again - see previous
commits; it collides with print-xx.out on systems with case-insensitive
file systems).
2009-11-16 16:32:21 -08:00
Michael Richardson
71e0924eeb ignore lmp.new file 2009-11-14 22:17:25 -05:00
Michael Richardson
1a2cbb1112 initial printing of RPL DIO messages 2009-11-14 22:17:12 -05:00
Michael Richardson
27e7cefadd netdisect converted icmp6_print() 2009-11-14 21:36:05 -05:00