summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Sutton <josephsutton@catalyst.net.nz>2023-07-07 10:42:01 +1200
committerAndrew Bartlett <abartlet@samba.org>2023-08-08 04:39:37 +0000
commitdc89fabbb506c49bd166680d4f80cdeaec6cb034 (patch)
treefb5511573388c266e8f957282b16da981a099927
parent5820558592ba8a16837992648e0dbd61532e803e (diff)
downloadsamba-dc89fabbb506c49bd166680d4f80cdeaec6cb034.tar.gz
samba-dc89fabbb506c49bd166680d4f80cdeaec6cb034.tar.bz2
samba-dc89fabbb506c49bd166680d4f80cdeaec6cb034.zip
ldb: Don’t leak ‘msg’
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--lib/ldb/pyldb.c4
1 files changed, 4 insertions, 0 deletions
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));