]> granicus.if.org Git - python/commitdiff
Fix memory leaks
authorNeal Norwitz <nnorwitz@gmail.com>
Thu, 27 Mar 2008 04:40:07 +0000 (04:40 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Thu, 27 Mar 2008 04:40:07 +0000 (04:40 +0000)
Objects/bytesobject.c

index 90990a744cbd1b014c4d1ff598b65106de65041c..23de37e07a9bcf4590b849b4e4d32e42ae8fa3b5 100644 (file)
@@ -2683,17 +2683,21 @@ bytes_extend(PyBytesObject *self, PyObject *arg)
         if (! _getbytevalue(item, &value)) {
             Py_DECREF(item);
             Py_DECREF(it);
+            PyMem_Free(buf);
             return NULL;
         }
         buf[len++] = value;
         Py_DECREF(item);
         if (len >= buf_size) {
+            char *new_buf;
             buf_size = len + (len >> 1) + 1;
-            buf = (char *)PyMem_Realloc(buf, buf_size * sizeof(char));
-            if (buf == NULL) {
+            new_buf = (char *)PyMem_Realloc(buf, buf_size * sizeof(char));
+            if (new_buf == NULL) {
                 Py_DECREF(it);
+                PyMem_Free(buf);
                 return PyErr_NoMemory();
             }
+            buf = new_buf;
         }
     }
     Py_DECREF(it);