[3.7] bpo-33916: Fix bz2 and lzma init when called twice (GH-7843) by miss-islington · Pull Request #7871 · python/cpython
Expand Up
@@ -1163,11 +1163,15 @@ _lzma_LZMADecompressor___init___impl(Decompressor *self, int format,
self->lzs.allocator = &self->alloc;
self->lzs.next_in = NULL;
self->lock = PyThread_allocate_lock(); if (self->lock == NULL) { PyThread_type_lock lock = PyThread_allocate_lock(); if (lock == NULL) { PyErr_SetString(PyExc_MemoryError, "Unable to allocate lock"); return -1; } if (self->lock != NULL) { PyThread_free_lock(self->lock); } self->lock = lock;
self->check = LZMA_CHECK_UNKNOWN; self->needs_input = 1; Expand Down
self->lock = PyThread_allocate_lock(); if (self->lock == NULL) { PyThread_type_lock lock = PyThread_allocate_lock(); if (lock == NULL) { PyErr_SetString(PyExc_MemoryError, "Unable to allocate lock"); return -1; } if (self->lock != NULL) { PyThread_free_lock(self->lock); } self->lock = lock;
self->check = LZMA_CHECK_UNKNOWN; self->needs_input = 1; Expand Down