From caf6bd1d575af699bee0a8879806121769df6981 Mon Sep 17 00:00:00 2001 From: tb Date: Sat, 12 Aug 2023 13:49:29 +0000 Subject: [PATCH] Fix bug when gzungetc() is used immediately after gzopen(). from upstream --- lib/libz/gzread.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/libz/gzread.c b/lib/libz/gzread.c index 6034a282371..4168cbc8875 100644 --- a/lib/libz/gzread.c +++ b/lib/libz/gzread.c @@ -443,6 +443,10 @@ int ZEXPORT gzungetc(int c, gzFile file) { return -1; state = (gz_statep)file; + /* in case this was just opened, set up the input buffer */ + if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0) + (void)gz_look(state); + /* check that we're reading and that there's no (serious) error */ if (state->mode != GZ_READ || (state->err != Z_OK && state->err != Z_BUF_ERROR)) -- 2.20.1