summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib_generic/zlib.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib_generic/zlib.c b/lib_generic/zlib.c
index 3d5b5c0d6..1b6db3214 100644
--- a/lib_generic/zlib.c
+++ b/lib_generic/zlib.c
@@ -1040,6 +1040,8 @@ z_streamp strm;
state->hold = 0;
state->bits = 0;
state->lencode = state->distcode = state->next = state->codes;
+ if (strm->outcb != Z_NULL)
+ (*strm->outcb)(Z_NULL, 0);
Tracev((stderr, "inflate: reset\n"));
return Z_OK;
}
@@ -1952,7 +1954,11 @@ z_streamp strm;
if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
- if (state->window != Z_NULL) ZFREE(strm, state->window);
+ if (state->window != Z_NULL) {
+ if (strm->outcb != Z_NULL)
+ (*strm->outcb)(Z_NULL, 0);
+ ZFREE(strm, state->window);
+ }
ZFREE(strm, strm->state);
strm->state = Z_NULL;
Tracev((stderr, "inflate: end\n"));