From 48a66835ee4f319ba7806a542bb2cf1f16a2ac06 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Wed, 28 Sep 2016 16:45:23 -0700 Subject: Use wtap_read_bytes() to skip over bytes when reading a record. Allow file_read() to take a null pointer as a buffer argument; a null argument means "do everything except copy the bytes from the file to the user buffer". That means that wtap_read_bytes() and wtap_read_bytes_or_eof() also support a null pointer as a buffer argument. Use wtap_read_bytes() with a null buffer argument rather than file_skip() to skip forward over data. This fixes some places where files were mis-identified as ERF files, as the ERF open heuristics now get a short "read" error if they try to skip over more bytes than exist in the file. Change-Id: I4f73499d877c1f582e2bcf9b045034880cb09622 Reviewed-on: https://code.wireshark.org/review/17974 Reviewed-by: Guy Harris --- wiretap/nettl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'wiretap/nettl.c') diff --git a/wiretap/nettl.c b/wiretap/nettl.c index 76f22dce3c..c8481fe899 100644 --- a/wiretap/nettl.c +++ b/wiretap/nettl.c @@ -600,7 +600,7 @@ nettl_read_rec(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf, bytes_to_read = 3; if (bytes_to_read > datalen) bytes_to_read = datalen; - if (!file_skip(fh, bytes_to_read, err)) + if (!wtap_read_bytes(fh, NULL, bytes_to_read, err, err_info)) return FALSE; datalen -= bytes_to_read; if (datalen == 0) { -- cgit v1.2.1