diff options
author | Guy Harris <guy@alum.mit.edu> | 2002-06-07 07:27:35 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2002-06-07 07:27:35 +0000 |
commit | 2aad75bb826b45ee1a78be2bbe2687e488748f8b (patch) | |
tree | fc165ec22e943d3b15a10b6c8c84359286432e05 /wiretap/file_wrappers.h | |
parent | c15486768a2d90fcf97ca8ea628f3d174ad11a5b (diff) | |
download | wireshark-2aad75bb826b45ee1a78be2bbe2687e488748f8b.tar.gz wireshark-2aad75bb826b45ee1a78be2bbe2687e488748f8b.tar.bz2 wireshark-2aad75bb826b45ee1a78be2bbe2687e488748f8b.zip |
Graeme Hewson noted that zlib has a bug wherein "gzseek()" doesn't set
the internal z_err value for the stream if an "fseek()" call it makes
fails, so that if "gzerror()" is subsequently called, it returns Z_OK
rather than an error.
To work around this, we pass "file_seek()" an "int *err", and have the
with-zlib version of "file_seek()" check, if "gzseek()" fails, whether
the return value of "file_error()" is 0 and, if so, have it return
"errno" instead.
svn path=/trunk/; revision=5642
Diffstat (limited to 'wiretap/file_wrappers.h')
-rw-r--r-- | wiretap/file_wrappers.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/wiretap/file_wrappers.h b/wiretap/file_wrappers.h index efeb96e35a..ee29c7a3bf 100644 --- a/wiretap/file_wrappers.h +++ b/wiretap/file_wrappers.h @@ -1,6 +1,6 @@ /* file_wrappers.h * - * $Id: file_wrappers.h,v 1.8 2002/03/04 00:25:35 guy Exp $ + * $Id: file_wrappers.h,v 1.9 2002/06/07 07:27:34 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu> @@ -28,7 +28,7 @@ #define file_open gzopen #define filed_open gzdopen -extern long file_seek(void *stream, long offset, int whence); +extern long file_seek(void *stream, long offset, int whence, int *err); #define file_read(buf, bsize, count, file) gzread((file),(buf),((count)*(bsize))) #define file_write(buf, bsize, count, file) gzwrite((file),(buf),((count)*(bsize))) #define file_close gzclose @@ -41,7 +41,7 @@ extern int file_error(void *fh); #else /* No zLib */ #define file_open fopen #define filed_open fdopen -#define file_seek fseek +extern long file_seek(void *stream, long offset, int whence, int *err); #define file_read fread #define file_write fwrite #define file_close fclose |