diff options
-rw-r--r-- | Lib/test/test_zlib.py | 6 | ||||
-rw-r--r-- | Modules/zlibmodule.c | 1 |
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) |