pyldb: raise an exception if we can't add the attribute
authorMatthieu Patou <mat@matws.net>
Tue, 3 Jan 2012 03:25:56 +0000 (19:25 -0800)
committerMatthieu Patou <mat@samba.org>
Tue, 3 Jan 2012 05:47:10 +0000 (06:47 +0100)
lib/ldb/pyldb.c

index b2315e6751f70183e0e6abb7dc4f25079e8dd558..b253bcd28e60eeff7830db95ff0af4c2eb8b76a9 100644 (file)
@@ -2668,12 +2668,17 @@ static int py_ldb_msg_setitem(PyLdbMessageObject *self, PyObject *name, PyObject
                /* delitem */
                ldb_msg_remove_attr(self->msg, attr_name);
        } else {
+               int ret;
                struct ldb_message_element *el = PyObject_AsMessageElement(self->msg,
                                                                           value, 0, attr_name);
                if (el == NULL)
                        return -1;
                ldb_msg_remove_attr(pyldb_Message_AsMessage(self), attr_name);
-               ldb_msg_add(pyldb_Message_AsMessage(self), el, el->flags);
+               ret = ldb_msg_add(pyldb_Message_AsMessage(self), el, el->flags);
+               if (ret != LDB_SUCCESS) {
+                       PyErr_SetLdbError(PyExc_LdbError, ret, NULL);
+                       return -1;
+               }
        }
        return 0;
 }