From: Douglas Bagnall Date: Wed, 10 Apr 2024 02:41:09 +0000 (+1200) Subject: pyldb: py_ldb_dn_add_child() uses PyErr_LDB_DN_OR_RAISE X-Git-Tag: tdb-1.4.11~1210 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=310624ead5078d38bca7abaac35e06b49b129568;p=thirdparty%2Fsamba.git pyldb: py_ldb_dn_add_child() uses PyErr_LDB_DN_OR_RAISE for self->dn only. The other dn is a different story, next commit. Signed-off-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c index c82420b9419..f2fa5bb3913 100644 --- a/lib/ldb/pyldb.c +++ b/lib/ldb/pyldb.c @@ -648,16 +648,18 @@ static PyObject *py_ldb_dn_get_parent(PyObject *self, return (PyObject *)py_ret; } -static PyObject *py_ldb_dn_add_child(PyLdbDnObject *self, PyObject *args) +static PyObject *py_ldb_dn_add_child(PyObject *self, PyObject *args) { - PyObject *py_other; - struct ldb_dn *dn, *other; + PyObject *py_other = NULL; + struct ldb_dn *dn = NULL; + struct ldb_dn *other = NULL; bool ok; + + PyErr_LDB_DN_OR_RAISE(self, dn); + if (!PyArg_ParseTuple(args, "O", &py_other)) return NULL; - dn = pyldb_Dn_AS_DN((PyObject *)self); - if (!pyldb_Object_AsDn(NULL, py_other, ldb_dn_get_ldb_context(dn), &other)) return NULL; diff --git a/selftest/knownfail.d/pyldb-segfaults b/selftest/knownfail.d/pyldb-segfaults index 4e7f25eee9b..e69de29bb2d 100644 --- a/selftest/knownfail.d/pyldb-segfaults +++ b/selftest/knownfail.d/pyldb-segfaults @@ -1,3 +0,0 @@ -^samba\.tests\.segfault\.samba\.tests\.segfault\.SegfaultTests\.test_ldb_use_after_free_dn_assign_disconnecting_connection\(ad_dc\) -^samba\.tests\.segfault\.samba\.tests\.segfault\.SegfaultTests\.test_ldb_use_after_free_dn_assign_disconnecting_connection_add_child_later\(ad_dc\) -^samba\.tests\.segfault\.samba\.tests\.segfault\.SegfaultTests\.test_ldb_use_after_free_dn_assign_disconnecting_connection_no_del\(ad_dc\)