pyldb: py_ldb_dn_add_child() uses PyErr_LDB_DN_OR_RAISE
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Wed, 10 Apr 2024 02:41:09 +0000 (14:41 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 10 Apr 2024 05:13:32 +0000 (05:13 +0000)
for self->dn only. The other dn is a different story, next commit.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/pyldb.c
selftest/knownfail.d/pyldb-segfaults

index c82420b94194f71b1326b7740ffd31450a308a5f..f2fa5bb3913a082d4e243341e98248171be2a5ad 100644 (file)
@@ -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;
 
index 4e7f25eee9bc3735dae8752f50d5f7fd66102aeb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -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\)