[Python-Dev] [Python-checkins] cpython (merge 3.2 -> default): Closed reference leak of variable 'k' in function ste_new which wasn't decrefed
Stefan Krah
stefan at bytereef.org
Wed Sep 12 17:42:11 CEST 2012
christian.heimes <python-checkins at python.org> wrote:
> summary:
> Closed reference leak of variable 'k' in function ste_new which wasn't decrefed in error cases
>
> files:
> Python/symtable.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
>
> diff --git a/Python/symtable.c b/Python/symtable.c
> --- a/Python/symtable.c
> +++ b/Python/symtable.c
> @@ -24,7 +24,7 @@
> void *key, int lineno, int col_offset)
> {
> PySTEntryObject *ste = NULL;
> - PyObject *k;
> + PyObject *k = NULL;
>
> k = PyLong_FromVoidPtr(key);
> if (k == NULL)
> @@ -79,6 +79,7 @@
>
> return ste;
> fail:
> + Py_XDECREF(k);
> Py_XDECREF(ste);
I think 'k' is owned by the PySTEntryObject after it is assigned here:
ste->ste_id = k;
So ste_dealloc() will call Py_XDECREF(k) a second time.
Stefan Krah
More information about the Python-Dev
mailing list