[SCM] Samba Shared Repository - branch master updated
Kamen Mazdrashki
kamenim at samba.org
Mon Dec 20 04:02:02 MST 2010
The branch, master has been updated
via 33a57db s4-pydsdb: Use local memory context in py_dsdb_get_oid_from_attid()
from e1d3de3 dnspython: Merge in new upstream.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 33a57db3a542c364eb82499e5765a2caef00af33
Author: Kamen Mazdrashki <kamenim at samba.org>
Date: Mon Dec 20 11:39:26 2010 +0200
s4-pydsdb: Use local memory context in py_dsdb_get_oid_from_attid()
This version reverts changes from commit b974966cc2b4d0b5b0d83206070b5f7c5c6495d1
and is what Matthieu Patou had commited in d784ecec555a3d9737e6f4b3894f27904d2b833c
with added reference to the schema cache.
I think referencing schema here is the right thing to be done
as thus we garantee that schema cache will stay in memory
for the time our function is executed
Autobuild-User: Kamen Mazdrashki <kamenim at samba.org>
Autobuild-Date: Mon Dec 20 12:01:53 CET 2010 on sn-devel-104
-----------------------------------------------------------------------
Summary of changes:
source4/dsdb/pydsdb.c | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/dsdb/pydsdb.c b/source4/dsdb/pydsdb.c
index af03504..1a51b86 100644
--- a/source4/dsdb/pydsdb.c
+++ b/source4/dsdb/pydsdb.c
@@ -249,25 +249,37 @@ static PyObject *py_dsdb_get_oid_from_attid(PyObject *self, PyObject *args)
const char *oid;
PyObject *ret;
WERROR status;
+ TALLOC_CTX *mem_ctx;
if (!PyArg_ParseTuple(args, "Oi", &py_ldb, &attid))
return NULL;
PyErr_LDB_OR_RAISE(py_ldb, ldb);
- schema = dsdb_get_schema(ldb, NULL);
+ mem_ctx = talloc_new(NULL);
+ if (!mem_ctx) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ schema = dsdb_get_schema(ldb, mem_ctx);
if (!schema) {
PyErr_SetString(PyExc_RuntimeError, "Failed to find a schema from ldb \n");
+ talloc_free(mem_ctx);
return NULL;
}
status = dsdb_schema_pfm_oid_from_attid(schema->prefixmap, attid,
- NULL, &oid);
- PyErr_WERROR_IS_ERR_RAISE(status);
+ mem_ctx, &oid);
+ if (!W_ERROR_IS_OK(status)) {
+ PyErr_SetWERROR(status);
+ talloc_free(mem_ctx);
+ return NULL;
+ }
ret = PyString_FromString(oid);
- talloc_free(discard_const_p(char, oid));
+
+ talloc_free(mem_ctx);
return ret;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list