From: Gregory P. Smith Date: Sat, 6 Oct 2007 08:22:26 +0000 (+0000) Subject: Merge 58343: attempt to fix DBSequence.get_key() to not fail or crash. X-Git-Tag: v3.0a2~359 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9e780cc4e7466fdaf657633eabbc69974949be32;p=thirdparty%2FPython%2Fcpython.git Merge 58343: attempt to fix DBSequence.get_key() to not fail or crash. --- diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index 6f323d52e3cc..175dec3d49d2 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -5024,14 +5024,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 = PyBytes_FromStringAndSize(key.data, key.size); + + free_dbt(&key); RETURN_IF_ERR(); - return PyBytes_FromStringAndSize(key.data, key.size); + return retval; } static PyObject*