From: Mark Adler Date: Sat, 24 Sep 2011 07:29:46 +0000 (-0700) Subject: Fix bug in gzgets() for a concatenated empty gzip stream. X-Git-Tag: v1.2.5.2~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a81dc026c4e727e9498654d703730ef8efbb8de;p=thirdparty%2Fzlib-ng.git Fix bug in gzgets() for a concatenated empty gzip stream. --- diff --git a/gzread.c b/gzread.c index d44f2f70a..695d01d9f 100644 --- a/gzread.c +++ b/gzread.c @@ -569,14 +569,14 @@ char * ZEXPORT gzgets(file, buf, len) left = (unsigned)len - 1; if (left) do { /* assure that something is in the output buffer */ - if (state->have == 0) { + while (state->have == 0 && (state->strm.avail_in || !state->eof)) { if (gz_make(state) == -1) return NULL; /* error */ - if (state->have == 0) { /* end of file */ - if (buf == str) /* got bupkus */ - return NULL; - break; /* got something -- return it */ - } + } + if (state->have == 0) { /* end of file */ + if (buf == str) /* got bupkus */ + return NULL; + break; /* got something -- return it */ } /* look for end-of-line in current output buffer */