]> granicus.if.org Git - python/commitdiff
Closes #20908: Memory leak in Reg2Py()
authorJesus Cea <jcea@jcea.es>
Thu, 13 Mar 2014 16:33:43 +0000 (17:33 +0100)
committerJesus Cea <jcea@jcea.es>
Thu, 13 Mar 2014 16:33:43 +0000 (17:33 +0100)
PC/_winreg.c

index d60b15119291b0641b16d5a8b7e01e1ac2b94b83..472e84e24d49211ca3c4b44ea9e7fc1fa0b3e8d4 100644 (file)
@@ -948,8 +948,10 @@ Reg2Py(char *retDataBuf, DWORD retDataSize, DWORD typ)
 
                 fixupMultiSZ(str, retDataBuf, retDataSize);
                 obData = PyList_New(s);
-                if (obData == NULL)
+                if (obData == NULL) {
+                    free(str);
                     return NULL;
+                }
                 for (index = 0; index < s; index++)
                 {
                     size_t len = _mbstrlen(str[index]);
@@ -957,6 +959,7 @@ Reg2Py(char *retDataBuf, DWORD retDataSize, DWORD typ)
                         PyErr_SetString(PyExc_OverflowError,
                             "registry string is too long for a Python string");
                         Py_DECREF(obData);
+                        free(str);
                         return NULL;
                     }
                     PyList_SetItem(obData,