diff options
author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2023-10-03 13:47:19 +0300 |
---|---|---|
committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2023-10-03 13:47:19 +0300 |
commit | 8a5f6c7f81eef21db425038b213e84dd25ed336d (patch) | |
tree | d3bb5fa3079fb7a35e641164941b70c435e1d48b /src/3rdparty/zlib/src/infback.c | |
parent | 4ad98906e9931b50a51080a7880951a173c4c3f9 (diff) | |
parent | 938cdd2629732988bb815b5ceb14dab4563311d7 (diff) |
Merge remote-tracking branch 'origin/tqtc/lts-6.2.7' into tqtc/lts-6.2-opensource
Change-Id: Ie70d33341cccaaa69968dc8d1337ec27d7895127
Diffstat (limited to 'src/3rdparty/zlib/src/infback.c')
-rw-r--r-- | src/3rdparty/zlib/src/infback.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/3rdparty/zlib/src/infback.c b/src/3rdparty/zlib/src/infback.c index a390c58e81..babeaf1806 100644 --- a/src/3rdparty/zlib/src/infback.c +++ b/src/3rdparty/zlib/src/infback.c @@ -66,6 +66,7 @@ int stream_size; state->window = window; state->wnext = 0; state->whave = 0; + state->sane = 1; return Z_OK; } @@ -605,25 +606,27 @@ void FAR *out_desc; break; case DONE: - /* inflate stream terminated properly -- write leftover output */ + /* inflate stream terminated properly */ ret = Z_STREAM_END; - if (left < state->wsize) { - if (out(out_desc, state->window, state->wsize - left)) - ret = Z_BUF_ERROR; - } goto inf_leave; case BAD: ret = Z_DATA_ERROR; goto inf_leave; - default: /* can't happen, but makes compilers happy */ + default: + /* can't happen, but makes compilers happy */ ret = Z_STREAM_ERROR; goto inf_leave; } - /* Return unused input */ + /* Write leftover output and return unused input */ inf_leave: + if (left < state->wsize) { + if (out(out_desc, state->window, state->wsize - left) && + ret == Z_STREAM_END) + ret = Z_BUF_ERROR; + } strm->next_in = next; strm->avail_in = have; return ret; |