struct ldb_message *diff;
struct ldb_context *ldb;
PyObject *py_ret;
+ TALLOC_CTX *mem_ctx = NULL;
if (!PyArg_ParseTuple(args, "OO", &py_msg_old, &py_msg_new))
return NULL;
return NULL;
}
+ mem_ctx = talloc_new(NULL);
+ if (mem_ctx == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
ldb = pyldb_Ldb_AS_LDBCONTEXT(self);
- ldb_ret = ldb_msg_difference(ldb, ldb,
+ ldb_ret = ldb_msg_difference(ldb, mem_ctx,
pyldb_Message_AsMessage(py_msg_old),
pyldb_Message_AsMessage(py_msg_new),
&diff);
if (ldb_ret != LDB_SUCCESS) {
+ talloc_free(mem_ctx);
PyErr_SetString(PyExc_RuntimeError, "Failed to generate the Ldb Message diff");
return NULL;
}
+ diff = ldb_msg_copy(mem_ctx, diff);
+ if (diff == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
py_ret = PyLdbMessage_FromMessage(diff);
- talloc_unlink(ldb, diff);
+ talloc_free(mem_ctx);
return py_ret;
}
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_init__3
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_dnsp_string_list
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_dns_record
-samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_ldb_msg_diff