diff options
author | Guy Harris <guy@alum.mit.edu> | 2011-05-10 20:17:31 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2011-05-10 20:17:31 +0000 |
commit | 2ca5312b6476d37ad709ca5eb688952004371fd5 (patch) | |
tree | f878efe0f48993d0a8643d3630a02b631ac152ef /wiretap/ngsniffer.c | |
parent | 025f9ee4dbac6b886052d5660cb411679a1cd1fa (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.c | 13 |
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); |