]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix refcount leak in error cases. Bug found by coverity.
authorThomas Heller <theller@ctypes.org>
Tue, 13 Jan 2009 17:32:28 +0000 (17:32 +0000)
committerThomas Heller <theller@ctypes.org>
Tue, 13 Jan 2009 17:32:28 +0000 (17:32 +0000)
Modules/_ctypes/cfield.c

index ef85b87cbf282783d9b27e4002f7fc5f35a3bfcd..96264e7e9a15e1dac43ca4d04350d939367b852b 100644 (file)
@@ -1452,11 +1452,14 @@ Z_set(void *ptr, PyObject *value, Py_ssize_t size)
                size += 1; /* terminating NUL */
                size *= sizeof(wchar_t);
                buffer = (wchar_t *)PyMem_Malloc(size);
-               if (!buffer)
+               if (!buffer) {
+                       Py_DECREF(value);
                        return PyErr_NoMemory();
+               }
                memset(buffer, 0, size);
                keep = PyCObject_FromVoidPtr(buffer, PyMem_Free);
                if (!keep) {
+                       Py_DECREF(value);
                        PyMem_Free(buffer);
                        return NULL;
                }