From: Douglas Bagnall Date: Wed, 10 Apr 2024 02:40:42 +0000 (+1200) Subject: pyldb: py_ldb_dn_get_casefold() uses PyErr_LDB_DN_OR_RAISE() X-Git-Tag: tdb-1.4.11~1215 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ce3f35502243847201e99fa7fa0312667d00e11;p=thirdparty%2Fsamba.git pyldb: py_ldb_dn_get_casefold() uses PyErr_LDB_DN_OR_RAISE() Signed-off-by: Douglas Bagnall Reviewed-by: Andrew Bartlett # Conflicts: # selftest/knownfail.d/ldb-use-after-free-segfault --- diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c index 0987aaf262f..ea8df507f56 100644 --- a/lib/ldb/pyldb.c +++ b/lib/ldb/pyldb.c @@ -465,10 +465,13 @@ static PyObject *py_ldb_dn_is_null(PyObject *self, return PyBool_FromLong(ldb_dn_is_null(dn)); } -static PyObject *py_ldb_dn_get_casefold(PyLdbDnObject *self, +static PyObject *py_ldb_dn_get_casefold(PyObject *self, PyObject *Py_UNUSED(ignored)) { - const char *s = ldb_dn_get_casefold(self->dn); + const char *s = NULL; + struct ldb_dn *dn = NULL; + PyErr_LDB_DN_OR_RAISE(self, dn); + s = ldb_dn_get_casefold(dn); if (s == NULL) { PyErr_NoMemory(); return NULL; diff --git a/selftest/knownfail.d/pyldb-segfaults b/selftest/knownfail.d/pyldb-segfaults index 71b473d083b..4e7f25eee9b 100644 --- a/selftest/knownfail.d/pyldb-segfaults +++ b/selftest/knownfail.d/pyldb-segfaults @@ -1,5 +1,3 @@ ^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_later\(ad_dc\) -^samba\.tests\.segfault\.samba\.tests\.segfault\.SegfaultTests\.test_ldb_use_after_free_dn_assign_disconnecting_connection_later__no_del\(ad_dc\) ^samba\.tests\.segfault\.samba\.tests\.segfault\.SegfaultTests\.test_ldb_use_after_free_dn_assign_disconnecting_connection_no_del\(ad_dc\)