blob: c89b80c60bbeea155059ee71468c7650d932d36d [file] [log] [blame]
diff --git a/output/pcap/ulogd_output_PCAP.c b/output/pcap/ulogd_output_PCAP.c
index e7798f2..51c4ceb 100644
--- a/output/pcap/ulogd_output_PCAP.c
+++ b/output/pcap/ulogd_output_PCAP.c
@@ -154,9 +154,15 @@ static int interp_pcap(struct ulogd_pluginstance *upi)
switch (ikey_get_u8(&res[5])) {
case 2: /* INET */
pchdr.len = ikey_get_u16(&res[2]);
+ if (pchdr.caplen > 20 + 8) {
+ pchdr.caplen = 20 + 8;
+ }
break;
case 10: /* INET6 -- payload length + header length */
pchdr.len = ikey_get_u16(&res[6]) + 40;
+ if (pchdr.caplen > 40 + 8) {
+ pchdr.caplen = 40 + 8;
+ }
break;
default:
pchdr.len = pchdr.caplen;
--
2.25.4