aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/lanalyzer.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2011-12-13 02:00:41 +0000
committerGuy Harris <guy@alum.mit.edu>2011-12-13 02:00:41 +0000
commitdd92029afa511018f80b3bf28eca30ff9f8ee967 (patch)
treeb953ca03ae2899a305acb2358dde815bb8b2331d /wiretap/lanalyzer.c
parent89303e99c4a554e9909faaa135b73215eb530e05 (diff)
Check for a bogus record size. Fixes bug 6670.
svn path=/trunk/; revision=40169
Diffstat (limited to 'wiretap/lanalyzer.c')
-rw-r--r--wiretap/lanalyzer.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/wiretap/lanalyzer.c b/wiretap/lanalyzer.c
index a77c10e8b9..2c049297f0 100644
--- a/wiretap/lanalyzer.c
+++ b/wiretap/lanalyzer.c
@@ -467,6 +467,16 @@ static gboolean lanalyzer_read(wtap *wth, int *err, gchar **err_info,
return FALSE;
}
else {
+ if (record_length < DESCRIPTOR_LEN) {
+ /*
+ * Uh-oh, the record isn't big enough to even have a
+ * descriptor.
+ */
+ *err = WTAP_ERR_BAD_RECORD;
+ *err_info = g_strdup_printf("lanalyzer: file has a %u-byte record, too small to have even a packet descriptor",
+ record_length);
+ return FALSE;
+ }
packet_size = record_length - DESCRIPTOR_LEN;
}