From ab37c48e57a16f69c6b926dbed6d4c1a50bb3fb9 Mon Sep 17 00:00:00 2001 From: Kirill Smelkov Date: Sat, 2 Oct 2010 17:43:50 +0400 Subject: pytdb: Check errors after PyObject_New() calls The call could fail with e.g. MemoryError, and we'll dereference NULL pointer without checking. Signed-off-by: Kirill Smelkov Signed-off-by: Jelmer Vernooij --- lib/tdb/pytdb.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib') diff --git a/lib/tdb/pytdb.c b/lib/tdb/pytdb.c index 402fa5d9d3..009063359f 100644 --- a/lib/tdb/pytdb.c +++ b/lib/tdb/pytdb.c @@ -97,6 +97,11 @@ static PyObject *py_tdb_open(PyTypeObject *type, PyObject *args, PyObject *kwarg } ret = PyObject_New(PyTdbObject, &PyTdb); + if (!ret) { + tdb_close(ctx); + return NULL; + } + ret->ctx = ctx; ret->closed = false; return (PyObject *)ret; @@ -330,6 +335,8 @@ static PyObject *tdb_object_iter(PyTdbObject *self) PyTdbIteratorObject *ret; ret = PyObject_New(PyTdbIteratorObject, &PyTdbIterator); + if (!ret) + return NULL; ret->current = tdb_firstkey(self->ctx); ret->iteratee = self; Py_INCREF(self); -- cgit