diff options
Diffstat (limited to 'wiretap/packetlogger.c')
-rw-r--r-- | wiretap/packetlogger.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/wiretap/packetlogger.c b/wiretap/packetlogger.c index 07ba70eed9..a4aef3f717 100644 --- a/wiretap/packetlogger.c +++ b/wiretap/packetlogger.c @@ -61,11 +61,18 @@ int packetlogger_open(wtap *wth, int *err, gchar **err_info) packetlogger_header_t pl_hdr; guint8 type; - if(!packetlogger_read_header(&pl_hdr, wth->fh, err, err_info)) - return -1; + if(!packetlogger_read_header(&pl_hdr, wth->fh, err, err_info)) { + if (*err != 0 && *err != WTAP_ERR_SHORT_READ) + return -1; + return 0; + } - if (file_read(&type, 1, wth->fh) <= 0) - return -1; + if (file_read(&type, 1, wth->fh) <= 0) { + *err = file_error(wth->fh, err_info); + if (*err != 0 && *err != WTAP_ERR_SHORT_READ) + return -1; + return 0; + } /* Verify this file belongs to us */ if (!((8 <= pl_hdr.len) && (pl_hdr.len < 65536) && |