diff options
author | Guy Harris <guy@alum.mit.edu> | 2011-12-13 02:00:41 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2011-12-13 02:00:41 +0000 |
commit | dd92029afa511018f80b3bf28eca30ff9f8ee967 (patch) | |
tree | b953ca03ae2899a305acb2358dde815bb8b2331d /wiretap/lanalyzer.c | |
parent | 89303e99c4a554e9909faaa135b73215eb530e05 (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.c | 10 |
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; } |