diff options
author | Guido van Rossum <guido@python.org> | 2000-03-24 20:52:23 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2000-03-24 20:52:23 (GMT) |
commit | 5ba3c843db445c0b8d35bc3823f1b402c91ebe08 (patch) | |
tree | e7f208becd9e42a5e5f1a75772acacd41b334eb1 /Python | |
parent | d8fbcc95d9585cf1e7a10a24f2717e9d0b7a3de0 (diff) | |
download | cpython-5ba3c843db445c0b8d35bc3823f1b402c91ebe08.zip cpython-5ba3c843db445c0b8d35bc3823f1b402c91ebe08.tar.gz cpython-5ba3c843db445c0b8d35bc3823f1b402c91ebe08.tar.bz2 |
Marc-Andre Lemburg:
Andy Robinson noted a core dump in the codecs.c file. This
was introduced by my latest patch which fixed a memory leak
in codecs.c. The bug causes all successful codec lookups to fail.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/codecs.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/Python/codecs.c b/Python/codecs.c index 2d49377..b2a19b8 100644 --- a/Python/codecs.c +++ b/Python/codecs.c @@ -93,7 +93,7 @@ PyObject *lowercasestring(const char *string) PyObject *_PyCodec_Lookup(const char *encoding) { - PyObject *result, *args = NULL, *v = NULL; + PyObject *result, *args = NULL, *v; int i, len; if (_PyCodec_SearchCache == NULL || _PyCodec_SearchPath == NULL) { @@ -119,15 +119,14 @@ PyObject *_PyCodec_Lookup(const char *encoding) } /* Next, scan the search functions in order of registration */ - len = PyList_Size(_PyCodec_SearchPath); - if (len < 0) - goto onError; - args = PyTuple_New(1); if (args == NULL) goto onError; PyTuple_SET_ITEM(args,0,v); - v = NULL; + + len = PyList_Size(_PyCodec_SearchPath); + if (len < 0) + goto onError; for (i = 0; i < len; i++) { PyObject *func; @@ -135,7 +134,7 @@ PyObject *_PyCodec_Lookup(const char *encoding) func = PyList_GetItem(_PyCodec_SearchPath, i); if (func == NULL) goto onError; - result = PyEval_CallObject(func,args); + result = PyEval_CallObject(func, args); if (result == NULL) goto onError; if (result == Py_None) { @@ -163,7 +162,6 @@ PyObject *_PyCodec_Lookup(const char *encoding) return result; onError: - Py_XDECREF(v); Py_XDECREF(args); return NULL; } |