1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
--- a/src/defines.h.in
+++ b/src/defines.h.in
@@ -145,7 +145,7 @@
#define DEFAULT_MTU 1500 /* Max Transmission Unit of standard ethernet
* don't forget *frames* are MTU + L2 header! */
-#define MAXPACKET 65535 /* was 16436 linux loopback, but maybe something is bigger then
+#define MAXPACKET 65549 /* was 16436 linux loopback, but maybe something is bigger then
linux loopback */
#define MAX_SNAPLEN 65535 /* tell libpcap to capture the entire packet */
--- a/src/tcprewrite.c
+++ b/src/tcprewrite.c
@@ -253,6 +253,8 @@ rewrite_packets(tcpedit_t *tcpedit, pcap_t *pin, pcap_dumper_t *pout)
packetnum++;
dbgx(2, "packet " COUNTER_SPEC " caplen %d", packetnum, pkthdr.caplen);
+ if (pkthdr.caplen > MAXPACKET)
+ errx(-1, "Frame too big, caplen %d exceeds %d", pkthdr.caplen, MAXPACKET);
/*
* copy over the packet so we can pad it out if necessary and
* because pcap_next() returns a const ptr
|