aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/snoop.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-12-19 22:23:05 +0000
committerGuy Harris <guy@alum.mit.edu>2003-12-19 22:23:05 +0000
commit8b0f0d5b7eab12de9c1549524d2e024e5134acd2 (patch)
treebcea7c174297d99887e29dff3ffe397a899608a7 /wiretap/snoop.c
parent21a6fddb35b84a2ff316a32d7ba9075743b005b8 (diff)
Add some additional sanity checking.
svn path=/trunk/; revision=9360
Diffstat (limited to 'wiretap/snoop.c')
-rw-r--r--wiretap/snoop.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/wiretap/snoop.c b/wiretap/snoop.c
index ec341467ac..dc781fe69e 100644
--- a/wiretap/snoop.c
+++ b/wiretap/snoop.c
@@ -1,6 +1,6 @@
/* snoop.c
*
- * $Id: snoop.c,v 1.65 2003/11/11 20:49:46 guy Exp $
+ * $Id: snoop.c,v 1.66 2003/12/19 22:23:05 guy Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
@@ -435,6 +435,15 @@ static gboolean snoop_read(wtap *wth, int *err, long *data_offset)
*err = WTAP_ERR_BAD_RECORD;
return FALSE;
}
+ if (packet_size > rec_size) {
+ /*
+ * Probably a corrupt capture file.
+ */
+ g_message("snoop: File has %u-byte packet, bigger than record size %u",
+ packet_size, rec_size);
+ *err = WTAP_ERR_BAD_RECORD;
+ return FALSE;
+ }
*data_offset = wth->data_offset;