From: Gregory P. Smith Date: Sat, 6 Oct 2007 16:05:18 +0000 (+0000) Subject: Backport rev 58343: fix DBSequence.get_key() to not crash/fail/etc. X-Git-Tag: v2.5.2c1~167 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=381e1a46cd782bc2090c3f718b34682e06380bbd;p=python Backport rev 58343: fix DBSequence.get_key() to not crash/fail/etc. --- diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index fc44737f7f..7b31054967 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -4883,14 +4883,20 @@ DBSequence_get_key(DBSequenceObject* self, PyObject* args) { int err; DBT key; + PyObject *retval; + key.flags = DB_DBT_MALLOC; CHECK_SEQUENCE_NOT_CLOSED(self) MYDB_BEGIN_ALLOW_THREADS err = self->sequence->get_key(self->sequence, &key); MYDB_END_ALLOW_THREADS + if (!err) + retval = PyString_FromStringAndSize(key.data, key.size); + + FREE_DBT(key); RETURN_IF_ERR(); - return PyString_FromStringAndSize(key.data, key.size); + return retval; } static PyObject*