From: Joseph Sutton Date: Thu, 6 Jul 2023 22:42:01 +0000 (+1200) Subject: ldb: Don’t leak ‘msg’ X-Git-Tag: tevent-0.16.0~1183 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc89fabbb506c49bd166680d4f80cdeaec6cb034;p=thirdparty%2Fsamba.git ldb: Don’t leak ‘msg’ Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c index cc222ed7f3d..8d38ed83fc9 100644 --- a/lib/ldb/pyldb.c +++ b/lib/ldb/pyldb.c @@ -1396,14 +1396,17 @@ static struct ldb_message *PyDict_AsMessage(TALLOC_CTX *mem_ctx, if (dn_value) { if (!pyldb_Object_AsDn(msg, dn_value, ldb_ctx, &msg->dn)) { PyErr_SetString(PyExc_TypeError, "unable to import dn object"); + TALLOC_FREE(msg); return NULL; } if (msg->dn == NULL) { PyErr_SetString(PyExc_TypeError, "dn set but not found"); + TALLOC_FREE(msg); return NULL; } } else { PyErr_SetString(PyExc_TypeError, "no dn set"); + TALLOC_FREE(msg); return NULL; } @@ -1414,6 +1417,7 @@ static struct ldb_message *PyDict_AsMessage(TALLOC_CTX *mem_ctx, mod_flags, key_str); if (msg_el == NULL) { PyErr_Format(PyExc_TypeError, "unable to import element '%s'", key_str); + TALLOC_FREE(msg); return NULL; } memcpy(&msg->elements[msg_pos], msg_el, sizeof(*msg_el));