From 04f147f4fa268e5277899d4c133cbfac124aa4c1 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Thu, 9 Jun 2011 18:31:39 +0000 Subject: Make sure we don't write invalid record lengths. svn path=/trunk/; revision=37634 --- wiretap/libpcap.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'wiretap') diff --git a/wiretap/libpcap.c b/wiretap/libpcap.c index 4557839b89..bb232b5fd2 100644 --- a/wiretap/libpcap.c +++ b/wiretap/libpcap.c @@ -997,6 +997,12 @@ static gboolean libpcap_dump(wtap_dumper *wdh, } rec_hdr.hdr.incl_len = phdr->caplen + phdrsize; rec_hdr.hdr.orig_len = phdr->len + phdrsize; + + if (rec_hdr.hdr.incl_len > WTAP_MAX_PACKET_SIZE || rec_hdr.hdr.orig_len > WTAP_MAX_PACKET_SIZE) { + *err = WTAP_ERR_BAD_RECORD; + return FALSE; + } + switch (wdh->file_type) { case WTAP_FILE_PCAP: -- cgit v1.2.3