pldb: py_ldb_msg_items uses PyErr_LDB_MESSAGE_OR_RAISE
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Fri, 15 Mar 2024 04:15:28 +0000 (17:15 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 10 Apr 2024 05:13:32 +0000 (05:13 +0000)
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/pyldb.c

index 874168b05644b3a915d930c55f597a0b8d096ba5..ac136619e6a2d3f0762e8af21651f3d27dc9bcea 100644 (file)
@@ -3847,18 +3847,22 @@ static PyObject *py_ldb_msg_get(PyObject *self, PyObject *args, PyObject *kwargs
        return PyObject_FromLdbValue(&el->values[idx]);
 }
 
-static PyObject *py_ldb_msg_items(PyLdbMessageObject *self,
+static PyObject *py_ldb_msg_items(PyObject *self,
                PyObject *Py_UNUSED(ignored))
 {
-       struct ldb_message *msg = pyldb_Message_AsMessage(self);
+       struct ldb_message *msg = NULL;
        Py_ssize_t i, j = 0;
-       PyObject *l = PyList_New(msg->num_elements + (msg->dn == NULL?0:1));
+       PyObject *l = NULL;
+
+       PyErr_LDB_MESSAGE_OR_RAISE(self, msg);
+
+       l = PyList_New(msg->num_elements + (msg->dn == NULL?0:1));
        if (l == NULL) {
                return PyErr_NoMemory();
        }
        if (msg->dn != NULL) {
                PyObject *value = NULL;
-               PyObject *obj = pyldb_Dn_FromDn(msg->dn, self->pyldb);
+               PyObject *obj = pyldb_Dn_FromDn(msg->dn, pyldb_Message_get_pyldb(self));
                int res = 0;
                value = Py_BuildValue("(sO)", "dn", obj);
                Py_CLEAR(obj);