christian.heimes <python-check...@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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com