diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py index 88815160f8b..35bca884320 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 8fc3bc20fdd..a3891f71336 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)