aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/ngsniffer.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2011-05-10 20:17:31 +0000
committerGuy Harris <guy@alum.mit.edu>2011-05-10 20:17:31 +0000
commit2ca5312b6476d37ad709ca5eb688952004371fd5 (patch)
treef878efe0f48993d0a8643d3630a02b631ac152ef /wiretap/ngsniffer.c
parent025f9ee4dbac6b886052d5660cb411679a1cd1fa (diff)
file_read() can return -1; don't just blindly add it to a previous
file_read() return value. Use wtap_file_read_expected_bytes() in a number of places. svn path=/trunk/; revision=37053
Diffstat (limited to 'wiretap/ngsniffer.c')
-rw-r--r--wiretap/ngsniffer.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/wiretap/ngsniffer.c b/wiretap/ngsniffer.c
index f417ebf08a..995de9b7df 100644
--- a/wiretap/ngsniffer.c
+++ b/wiretap/ngsniffer.c
@@ -579,14 +579,21 @@ ngsniffer_open(wtap *wth, int *err, gchar **err_info)
*/
errno = WTAP_ERR_CANT_READ;
bytes_read = file_read(record_type, 2, wth->fh);
- bytes_read += file_read(record_length, 4, wth->fh);
- if (bytes_read != 6) {
+ if (bytes_read != 2) {
+ *err = file_error(wth->fh, err_info);
+ if (*err != 0)
+ return -1;
+ return 0;
+ }
+ wth->data_offset += 2;
+ bytes_read = file_read(record_length, 4, wth->fh);
+ if (bytes_read != 4) {
*err = file_error(wth->fh, err_info);
if (*err != 0)
return -1;
return 0;
}
- wth->data_offset += 6;
+ wth->data_offset += 4;
type = pletohs(record_type);