]> The Tcpdump Group git mirrors - libpcap/commit
Make sure no read routine process more than INT_MAX packets.
authorGuy Harris <[email protected]>
Wed, 26 Jan 2022 23:00:26 +0000 (15:00 -0800)
committerGuy Harris <[email protected]>
Wed, 26 Jan 2022 23:00:26 +0000 (15:00 -0800)
commitc60ebf10efd105d149f7c2d3eb15dec38af45001
tree1a6eb5f1d7f84cf7451eb6847ec381f382e4119f
parentf570e6be7c5573f6e9310db751ede041a5e6151f
Make sure no read routine process more than INT_MAX packets.

Some read routines don't read a single bufferful of packets and process
just those packets; if packets continue to be made available, they could
conceivably process an arbitrary number of packets.

That would mean that the packet count overflows; either that makes it
look like a negative number, making it look as if an error occurred, or
makes it look like a too-small positive number.

This can't be fixed by making the count 64-bit, as it ultimately gets
returned by pcap_dispatch(), which is defined to return an int.

Instead, if the maximum packet count argument to those routines is a
value that means "no maximum", we set the maximum to INT_MAX.  Those
routines are *not* defined to loop forever, so this isn't an issue.

This should fix issue #1087.
16 files changed:
dlpisubs.c
pcap-airpcap.c
pcap-bpf.c
pcap-dag.c
pcap-dos.c
pcap-dpdk.c
pcap-linux.c
pcap-netfilter-linux.c
pcap-nit.c
pcap-npf.c
pcap-pf.c
pcap-rdmasniff.c
pcap-rpcap.c
pcap-snf.c
pcap-snit.c
savefile.c