summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_zlib.py6
-rw-r--r--Modules/zlibmodule.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py
index 8881516..35bca88 100644
--- a/Lib/test/test_zlib.py
+++ b/Lib/test/test_zlib.py
@@ -41,6 +41,12 @@ buf = buf * 16
co = zlib.compressobj(8, 8, -15)
x1 = co.compress(buf)
x2 = co.flush()
+try:
+ co.flush()
+ print "Oops - second flush worked when it should not have!"
+except zlib.error:
+ pass
+
x = x1 + x2
dc = zlib.decompressobj(-15)
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index 8fc3bc2..a3891f7 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -648,6 +648,7 @@ PyZlib_flush(compobject *self, PyObject *args)
zlib_error(self->zst, err, "while flushing");
Py_DECREF(RetVal);
RetVal = NULL;
+ goto error;
}
if (_PyString_Resize(&RetVal, self->zst.total_out - start_total_out) < 0)