svn commit: samba r19732 - in branches/SAMBA_4_0/source:
dsdb/samdb/ldb_modules scripting/ejs
abartlet at samba.org
abartlet at samba.org
Thu Nov 16 09:34:21 GMT 2006
Author: abartlet
Date: 2006-11-16 09:34:19 +0000 (Thu, 16 Nov 2006)
New Revision: 19732
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19732
Log:
The 'res' from ldb_search is only valid if the call returns LDB_SUCCESS.
This seems to show up (as an abort() from talloc) particularly under
ldb_ildap.
Andrew Bartlett
Modified:
branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c
branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c
Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c 2006-11-16 09:16:17 UTC (rev 19731)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c 2006-11-16 09:34:19 UTC (rev 19732)
@@ -200,9 +200,12 @@
do {
ret = ldb_search(module->ldb, sdn, LDB_SCOPE_BASE,
"(|(objectClass=domain)(objectClass=builtinDomain))", attrs, &res);
- talloc_steal(local_ctx, res);
- if (ret == LDB_SUCCESS && res->count == 1)
- break;
+ if (ret == LDB_SUCCESS) {
+ talloc_steal(local_ctx, res);
+ if (res->count == 1) {
+ break;
+ }
+ }
} while ((sdn = ldb_dn_get_parent(local_ctx, sdn)));
if (ret != LDB_SUCCESS || res->count != 1) {
Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c 2006-11-16 09:16:17 UTC (rev 19731)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c 2006-11-16 09:34:19 UTC (rev 19732)
@@ -111,8 +111,8 @@
mpr_Return(eid, mprCreateUndefinedVar());
} else {
mpr_Return(eid, mprLdbArray(ldb, res->msgs, res->count, "ldb_message"));
+ talloc_free(res);
}
- talloc_free(res);
talloc_free(tmp_ctx);
return 0;
More information about the samba-cvs
mailing list