Mercurial > cpython-lru_cache-weakref
diff Objects/bytesobject.c @ 46131:d740c71f02ff legacy-trunk
Fix memory leaks
| author | Neal Norwitz <nnorwitz@gmail.com> |
|---|---|
| date | Thu, 27 Mar 2008 04:40:07 +0000 |
| parents | 6192d5b12b6a |
| children | 0b55875c1c9c |
line wrap: on
line diff
--- a/Objects/bytesobject.c Thu Mar 27 03:49:54 2008 +0000 +++ b/Objects/bytesobject.c Thu Mar 27 04:40:07 2008 +0000 @@ -2683,17 +2683,21 @@ 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);
