Mercurial > cpython-lru_cache-weakref
diff Modules/bz2module.c @ 39135:12e973bdfeee legacy-trunk
Fix more memory allocation issues found with failmalloc.
| author | Neal Norwitz <nnorwitz@gmail.com> |
|---|---|
| date | Sat, 22 Jul 2006 16:20:49 +0000 |
| parents | c67b23397f30 |
| children | 352ffe77b71d |
line wrap: on
line diff
--- a/Modules/bz2module.c Fri Jul 21 22:44:07 2006 +0000 +++ b/Modules/bz2module.c Sat Jul 22 16:20:49 2006 +0000 @@ -1348,8 +1348,10 @@ #ifdef WITH_THREAD self->lock = PyThread_allocate_lock(); - if (!self->lock) + if (!self->lock) { + PyErr_SetString(PyExc_MemoryError, "unable to allocate lock"); goto error; + } #endif if (mode_char == 'r') @@ -1371,10 +1373,12 @@ return 0; error: - Py_DECREF(self->file); + Py_CLEAR(self->file); #ifdef WITH_THREAD - if (self->lock) + if (self->lock) { PyThread_free_lock(self->lock); + self->lock = NULL; + } #endif return -1; } @@ -1682,8 +1686,10 @@ #ifdef WITH_THREAD self->lock = PyThread_allocate_lock(); - if (!self->lock) + if (!self->lock) { + PyErr_SetString(PyExc_MemoryError, "unable to allocate lock"); goto error; + } #endif memset(&self->bzs, 0, sizeof(bz_stream)); @@ -1698,8 +1704,10 @@ return 0; error: #ifdef WITH_THREAD - if (self->lock) + if (self->lock) { PyThread_free_lock(self->lock); + self->lock = NULL; + } #endif return -1; } @@ -1894,8 +1902,10 @@ #ifdef WITH_THREAD self->lock = PyThread_allocate_lock(); - if (!self->lock) + if (!self->lock) { + PyErr_SetString(PyExc_MemoryError, "unable to allocate lock"); goto error; + } #endif self->unused_data = PyString_FromString(""); @@ -1915,10 +1925,12 @@ error: #ifdef WITH_THREAD - if (self->lock) + if (self->lock) { PyThread_free_lock(self->lock); + self->lock = NULL; + } #endif - Py_XDECREF(self->unused_data); + Py_CLEAR(self->unused_data); return -1; }
