| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Running out of packet length before running out of unreachable
destinations is an error; report it as such.
Don't worry about leftover data past the end of the list of unreachable
destinations.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use ND_TCHECK() rather than home-brew bounds checks. Do simpler length
checks.
Let i be the length of the actual remaining packet data; use ND_TCHECK()
inside loops that iterate over the remaining data.
Let the printers for particular message types cast the raw data pointer
to a pointer of the appropriate type, rather than passing two pointers,
with different types, to the same data.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Have "struct aodv_rerr" just be the header, not including the actual
destinations.
Simplify the logic somewhat, and make it similar in the print routines
for the three types of error messages.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fetch the type field without using a structure, and check to make sure
it's not past the end of the packet.
Pass to each dissection routine a pointer to the appropriate message
type structure, rather than a pointer to a union of all the message type
structures.
|
| |
| |
| |
| |
| |
| |
| | |
Don't run past the end of the captured data, and don't run past the end
of the packet (i.e., don't make the length variable go negative).
Also, stop dissecting if the message length isn't valid.
|
| |
| |
| |
| |
| | |
Don't run past the end of the captured data, and don't run past the end
of the packet (i.e., don't make the length variable go negative).
|
|\ \
| |/ |
|
| |\
| | |
| | | |
Add support for Generic Network Virtualization Encapsulation (Geneve).
|
| | |
| | |
| | |
| | | |
Defined in http://tools.ietf.org/html/draft-gross-geneve-02
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Define separate structures for v1, v5, adn v6; extract the version
number first, and then switch to routines for each of those structures.
This simplifies the processing of each version, and means no greasy
tricks for different-sized structures.
Use ND_TCHECK() for all bounds checks.
Also, don't pack 8-bit or 16-bit fields inside 32-bit words; make them
explicit fields and process them appropriately.
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
While we're at it, just use the record count to when iterating over
records; the ND_TCHECK()s will make sure we don't run past the end of
the captured data.
Also get rid of an unused argument to cnfp_print().
|
| | |
|
| | |
|
|\ \ |
|
| | | |
|
| |/ |
|
|/ |
|
|\ |
|
| | |
|
|\ \
| |/
|/| |
Use system libpcap when configured with --with-system-pcap
|
|/
|
|
|
|
|
|
|
|
| |
Don't force the local libpcap build when the system provides one. When
--with-system-pcap is given to configure, don't try to locate a local libpcap
build. This help build systems like Buildroot that store build trees in the
same directory, but still prefer dynamically linking against system wide
libpcap.so to save space.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
| |
|
|
|
|
|
|
|
|
| |
Add more checks, make some checks do a better job of handling too-short
lengths,
Also, rename ldp_msg_print() to ldp_pdu_print(), as it prints a single
PDU, not a single message within a PDU.
|
|
|
|
| |
Clean up a const issue while we're at it.
|
|
|
|
|
|
|
|
| |
The value of the length field in a UDP header includes the length of the
header itself; the values in this capture didn't. The length fields in
the IP headers and the RADIUS headers were correct and consistent with
each other, and the length fields in the UDP headers are now correct and
consistent with both of them.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Use ND_TTEST() and ND_TTEST2() for bounds checks.
Pass a pointer to the struct pkt_top to wb_dops, and calculate the
address of the first struct dophdr there. Check each struct dophdr
before printing it. Hopefully this will quiet a Coverity complaint.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
If it's less than the length of the IP payload, use it as the size of
the UDP packet. If it's greater than the length of the IP payload,
and we're not dissecting the payload, report the length as bad.
|
| |
|
| |
|
|
|
|
|
| |
If -q is used, the TCP dissector won't call subdissectors, so the Telnet
dissector won't even get called.
|
|
|
|
|
| |
For -q, just print "[telnet]". Without -v, at least print the
negotiation.
|
|
|
|
|
|
|
|
|
|
| |
"Text protocols" are protocols that have the general feel of FTP, with
command lines with a command name and space-separated arguments and
response lines beginning with a 3-digit reply code. They can also
include HTTP-style headers and an entity body.
We add support for the FTP control channel, HTTP, SMTP, and RTSP. We
also change the SIP printer to use it.
|
| |
|
|\ |
|
| |
| |
| |
| | |
Defined in RFC 5176
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Always define and declare ip6_print(), always compile print-ip6.c, and
always call it if we recognize a payload as IPv6. If INET6 isn't
defined, ip6_print() will just print the length and note that printing
isn't supported.
That way, we don't do weird dissection of IPv6 packets on systems
without IPv6 support, due to, for example, ethertype_print() returning 0
("not dissected") for IPv6 packets on those systems (IPv6-over-Frame
Relay was dissected weirdly due to this).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm not sure whether
Performing a byte swapping operation on "p" implies that it came
from an external source, and is therefore tainted.
from Coverity means that it thinks we're byte-swapping the pointer
*itself*, or that we're byte-swapping what it points to, but, just in
case it's the former, let's try throwing some more parentheses in.
(If it's the latter, well, yes, it's packet data, so it comes from an
external source, but Coverity didn't seem to point out any place where
we were using the data it points to without checking its value in cases
where we have to.)
|
| |
|
|
|
|
|
|
|
| |
Header printing (-e) had a stray ", " before the header; remove it.
Payload printing was skipping only the fixed portion of the PPI header,
not the entire header.
|