]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[Bug #1083110] calling .flush() on decompress objects causes a segfault due to an...
authorAndrew M. Kuchling <amk@amk.ca>
Tue, 28 Dec 2004 20:31:27 +0000 (20:31 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Tue, 28 Dec 2004 20:31:27 +0000 (20:31 +0000)
Misc/NEWS
Modules/zlibmodule.c

index 4f41753e3e2ebc57f2dfd85f5de412307bc1fde1..7e371debbdb7bd0dd0bc59e6b73600a6ca81bf44 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -65,6 +65,11 @@ Extension modules
 
 - Patch #945642: Fix non-blocking SSL sockets, which blocked on reads/writes.
 
+- Bug #1083110: ``zlib.decompress.flush()`` would segfault if called
+  immediately after creating the object, without any intervening 
+  ``.decompress()`` calls.
+
+
 Library
 -------
 
index 7fedae7887c83ba561c37cd9682f7b9de22992ed..c3238a0685017d2e04326c9f3d8ae4f79f071d80 100644 (file)
@@ -301,6 +301,8 @@ PyZlib_compressobj(PyObject *selfptr, PyObject *args)
        return(NULL);
     self->zst.zalloc = (alloc_func)NULL;
     self->zst.zfree = (free_func)Z_NULL;
+    self->zst.next_in = NULL;
+    self->zst.avail_in = 0;
     err = deflateInit2(&self->zst, level, method, wbits, memLevel, strategy);
     switch(err) {
     case (Z_OK):
@@ -335,6 +337,8 @@ PyZlib_decompressobj(PyObject *selfptr, PyObject *args)
        return(NULL);
     self->zst.zalloc = (alloc_func)NULL;
     self->zst.zfree = (free_func)Z_NULL;
+    self->zst.next_in = NULL;
+    self->zst.avail_in = 0;
     err = inflateInit2(&self->zst, wbits);
     switch(err) {
     case (Z_OK):
@@ -516,7 +520,7 @@ PyZlib_objdecompress(compobject *self, PyObject *args)
        Py_END_ALLOW_THREADS
     }
 
-    /* Not all of the compressed data could be accomodated in the output buffer
+    /* Not all of the compressed data could be accommodated in the output buffer
        of specified size. Return the unconsumed tail in an attribute.*/
     if(max_length) {
        Py_DECREF(self->unconsumed_tail);