[SCM] Samba Shared Repository - branch master updated - 508527890adc7bedd47522a7dae0c96d2b2e4bae

Simo Sorce idra at samba.org
Tue Sep 23 22:49:32 GMT 2008


The branch, master has been updated
       via  508527890adc7bedd47522a7dae0c96d2b2e4bae (commit)
      from  d275cc762dad1985045d381ca211e92234d9d77d (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 508527890adc7bedd47522a7dae0c96d2b2e4bae
Author: Simo Sorce <idra at samba.org>
Date:   Tue Sep 23 14:30:06 2008 -0400

    Merge ldb_search() and ldb_search_exp_fmt() into a simgle function.
    The previous ldb_search() interface made it way too easy to leak results,
    and being able to use a printf-like expression turns to be really useful.

-----------------------------------------------------------------------

Summary of changes:
 source4/auth/gensec/schannel_state.c           |    2 +-
 source4/cldap_server/netlogon.c                |   44 ++++++-------
 source4/dsdb/common/util.c                     |   29 ++++-----
 source4/dsdb/repl/drepl_partitions.c           |   10 +--
 source4/dsdb/samdb/cracknames.c                |   17 +++---
 source4/dsdb/samdb/ldb_modules/kludge_acl.c    |    8 +--
 source4/dsdb/samdb/ldb_modules/naming_fsmo.c   |    8 +--
 source4/dsdb/samdb/ldb_modules/partition.c     |    8 +--
 source4/dsdb/samdb/ldb_modules/pdc_fsmo.c      |    8 +--
 source4/dsdb/samdb/ldb_modules/proxy.c         |    2 +-
 source4/dsdb/samdb/ldb_modules/samldb.c        |   10 ++--
 source4/dsdb/samdb/ldb_modules/update_keytab.c |    4 +-
 source4/dsdb/samdb/samdb.c                     |    2 +-
 source4/dsdb/schema/schema_init.c              |   33 +++++-----
 source4/dsdb/schema/schema_set.c               |    4 +-
 source4/kdc/hdb-ldb.c                          |   17 +++---
 source4/ldap_server/ldap_backend.c             |    4 +-
 source4/ldap_server/ldap_server.c              |    8 +--
 source4/lib/ldb/common/ldb.c                   |   81 ++++++++---------------
 source4/lib/ldb/common/ldb_modules.c           |    2 +-
 source4/lib/ldb/examples/ldbreader.c           |    5 +-
 source4/lib/ldb/include/ldb.h                  |   24 ++-----
 source4/lib/ldb/ldb.i                          |    3 +-
 source4/lib/ldb/ldb_map/ldb_map.c              |    2 +-
 source4/lib/ldb/ldb_wrap.c                     |    4 +-
 source4/lib/ldb/nssldb/ldb-grp.c               |   20 ++++---
 source4/lib/ldb/nssldb/ldb-pwd.c               |   15 +++--
 source4/lib/ldb/tools/ldbdel.c                 |    2 +-
 source4/lib/ldb/tools/ldbedit.c                |    2 +-
 source4/lib/ldb/tools/ldbtest.c                |    4 +-
 source4/lib/registry/ldb.c                     |   24 ++++---
 source4/lib/util/util_ldb.c                    |    3 +-
 source4/libnet/libnet_become_dc.c              |   79 +++++++++++------------
 source4/libnet/libnet_join.c                   |    6 +-
 source4/libnet/libnet_unbecome_dc.c            |   19 ++----
 source4/nbt_server/wins/winsdb.c               |   23 ++-----
 source4/ntp_signd/ntp_signd.c                  |    2 +-
 source4/param/share_ldb.c                      |    6 +-
 source4/rpc_server/drsuapi/dcesrv_drsuapi.c    |   18 +++---
 source4/rpc_server/lsa/lsa_init.c              |    9 +--
 source4/rpc_server/samr/dcesrv_samr.c          |   12 ++--
 source4/torture/ldap/schema.c                  |    4 +-
 source4/torture/ldap/uptodatevector.c          |   10 +--
 source4/torture/local/dbspeed.c                |    7 +--
 source4/utils/ad2oLschema.c                    |   10 +--
 source4/winbind/idmap.c                        |   14 ++---
 source4/wrepl_server/wrepl_in_call.c           |    3 +-
 source4/wrepl_server/wrepl_scavenging.c        |    9 +--
 source4/wrepl_server/wrepl_server.c            |   15 ++---
 49 files changed, 284 insertions(+), 371 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/auth/gensec/schannel_state.c b/source4/auth/gensec/schannel_state.c
index f0710c5..0388b3c 100644
--- a/source4/auth/gensec/schannel_state.c
+++ b/source4/auth/gensec/schannel_state.c
@@ -195,7 +195,7 @@ NTSTATUS schannel_fetch_session_key_ldb(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	ret = ldb_search_exp_fmt(ldb, mem_ctx, &res,
+	ret = ldb_search(ldb, mem_ctx, &res,
 				 NULL, LDB_SCOPE_SUBTREE, NULL,
 				"(&(computerName=%s)(flatname=%s))", computer_name, domain);
 	if (ret != LDB_SUCCESS) {
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c
index 0b146b3..7dccd81 100644
--- a/source4/cldap_server/netlogon.c
+++ b/source4/cldap_server/netlogon.c
@@ -84,11 +84,11 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 		struct ldb_dn *dom_dn;
 		/* try and find the domain */
 
-		ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &ref_res, 
-					 partitions_basedn, LDB_SCOPE_ONELEVEL, 
-					 ref_attrs, 
-					 "(&(&(objectClass=crossRef)(dnsRoot=%s))(nETBIOSName=*))",
-					 ldb_binary_encode_string(mem_ctx, domain));
+		ret = ldb_search(sam_ctx, mem_ctx, &ref_res,
+				 partitions_basedn, LDB_SCOPE_ONELEVEL,
+				 ref_attrs,
+				 "(&(&(objectClass=crossRef)(dnsRoot=%s))(nETBIOSName=*))",
+				 ldb_binary_encode_string(mem_ctx, domain));
 	
 		if (ret != LDB_SUCCESS) {
 			DEBUG(2,("Unable to find referece to '%s' in sam: %s\n",
@@ -96,19 +96,17 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 				 ldb_errstring(sam_ctx)));
 			return NT_STATUS_NO_SUCH_DOMAIN;
 		} else if (ref_res->count == 1) {
-			talloc_steal(mem_ctx, dom_res);
 			dom_dn = ldb_msg_find_attr_as_dn(sam_ctx, mem_ctx, ref_res->msgs[0], "ncName");
 			if (!dom_dn) {
 				return NT_STATUS_NO_SUCH_DOMAIN;
 			}
-			ret = ldb_search(sam_ctx, dom_dn,
-					 LDB_SCOPE_BASE, "objectClass=domain", 
-					 dom_attrs, &dom_res);
+			ret = ldb_search(sam_ctx, mem_ctx, &dom_res,
+					 dom_dn, LDB_SCOPE_BASE, dom_attrs,
+					 "objectClass=domain");
 			if (ret != LDB_SUCCESS) {
 				DEBUG(2,("Error finding domain '%s'/'%s' in sam: %s\n", domain, ldb_dn_get_linearized(dom_dn), ldb_errstring(sam_ctx)));
 				return NT_STATUS_NO_SUCH_DOMAIN;
 			}
-			talloc_steal(mem_ctx, dom_res);
 			if (dom_res->count != 1) {
 				DEBUG(2,("Error finding domain '%s'/'%s' in sam\n", domain, ldb_dn_get_linearized(dom_dn)));
 				return NT_STATUS_NO_SUCH_DOMAIN;
@@ -123,11 +121,11 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 		struct ldb_dn *dom_dn;
 		/* try and find the domain */
 
-		ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &ref_res, 
-					 partitions_basedn, LDB_SCOPE_ONELEVEL, 
-					 ref_attrs, 
-					 "(&(objectClass=crossRef)(ncName=*)(nETBIOSName=%s))",
-					 ldb_binary_encode_string(mem_ctx, netbios_domain));
+		ret = ldb_search(sam_ctx, mem_ctx, &ref_res,
+				 partitions_basedn, LDB_SCOPE_ONELEVEL,
+				 ref_attrs,
+				 "(&(objectClass=crossRef)(ncName=*)(nETBIOSName=%s))",
+				 ldb_binary_encode_string(mem_ctx, netbios_domain));
 	
 		if (ret != LDB_SUCCESS) {
 			DEBUG(2,("Unable to find referece to '%s' in sam: %s\n",
@@ -135,19 +133,17 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 				 ldb_errstring(sam_ctx)));
 			return NT_STATUS_NO_SUCH_DOMAIN;
 		} else if (ref_res->count == 1) {
-			talloc_steal(mem_ctx, dom_res);
 			dom_dn = ldb_msg_find_attr_as_dn(sam_ctx, mem_ctx, ref_res->msgs[0], "ncName");
 			if (!dom_dn) {
 				return NT_STATUS_NO_SUCH_DOMAIN;
 			}
-			ret = ldb_search(sam_ctx, dom_dn,
-					 LDB_SCOPE_BASE, "objectClass=domain", 
-					 dom_attrs, &dom_res);
+			ret = ldb_search(sam_ctx, mem_ctx, &dom_res,
+					 dom_dn, LDB_SCOPE_BASE, dom_attrs,
+					 "objectClass=domain");
 			if (ret != LDB_SUCCESS) {
 				DEBUG(2,("Error finding domain '%s'/'%s' in sam: %s\n", domain, ldb_dn_get_linearized(dom_dn), ldb_errstring(sam_ctx)));
 				return NT_STATUS_NO_SUCH_DOMAIN;
 			}
-			talloc_steal(mem_ctx, dom_res);
 			if (dom_res->count != 1) {
 				DEBUG(2,("Error finding domain '%s'/'%s' in sam\n", domain, ldb_dn_get_linearized(dom_dn)));
 				return NT_STATUS_NO_SUCH_DOMAIN;
@@ -179,7 +175,7 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 			if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
 				return NT_STATUS_INVALID_PARAMETER;
 			}
-			ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &dom_res,
+			ret = ldb_search(sam_ctx, mem_ctx, &dom_res,
 						 NULL, LDB_SCOPE_SUBTREE, 
 						 dom_attrs, 
 						 "(&(objectCategory=DomainDNS)(objectGUID=%s))", 
@@ -196,7 +192,7 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 				return NT_STATUS_INVALID_PARAMETER;
 			}
 
-			ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &dom_res,
+			ret = ldb_search(sam_ctx, mem_ctx, &dom_res,
 						 NULL, LDB_SCOPE_SUBTREE, 
 						 dom_attrs, 
 						 "(&(objectCategory=DomainDNS)(objectSID=%s))", 
@@ -210,7 +206,7 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 			return NT_STATUS_NO_SUCH_DOMAIN;
 		} else if (dom_res->count == 1) {
 			/* try and find the domain */
-			ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &ref_res,
+			ret = ldb_search(sam_ctx, mem_ctx, &ref_res,
 						 partitions_basedn, LDB_SCOPE_ONELEVEL, 
 						 ref_attrs, 
 						 "(&(objectClass=crossRef)(ncName=%s))", 
@@ -260,7 +256,7 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 		acct_control = acct_control & (ACB_TEMPDUP | ACB_NORMAL | ACB_DOMTRUST | ACB_WSTRUST | ACB_SVRTRUST);
 
 		/* We must exclude disabled accounts, but otherwise do the bitwise match the client asked for */
-		ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &user_res,
+		ret = ldb_search(sam_ctx, mem_ctx, &user_res,
 					 dom_res->msgs[0]->dn, LDB_SCOPE_SUBTREE, 
 					 none_attrs, 
 					 "(&(objectClass=user)(samAccountName=%s)"
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c
index fa8276e..2b74d72 100644
--- a/source4/dsdb/common/util.c
+++ b/source4/dsdb/common/util.c
@@ -1024,7 +1024,7 @@ const struct dom_sid *samdb_domain_sid(struct ldb_context *ldb)
 		goto failed;
 	}
 
-	ret = ldb_search_exp_fmt(ldb, tmp_ctx, &res, ldb_get_default_basedn(ldb), LDB_SCOPE_BASE, attrs, "objectSid=*");
+	ret = ldb_search(ldb, tmp_ctx, &res, ldb_get_default_basedn(ldb), LDB_SCOPE_BASE, attrs, "objectSid=*");
 
 	if (ret != LDB_SUCCESS) {
 		goto failed;
@@ -1137,13 +1137,12 @@ struct ldb_dn *samdb_ntds_settings_dn(struct ldb_context *ldb)
 	}
 	
 
-	ret = ldb_search(ldb, ldb_dn_new(tmp_ctx, ldb, ""), LDB_SCOPE_BASE, NULL, root_attrs, &root_res);
+	ret = ldb_search(ldb, tmp_ctx, &root_res, ldb_dn_new(tmp_ctx, ldb, ""), LDB_SCOPE_BASE, root_attrs, NULL);
 	if (ret) {
 		DEBUG(1,("Searching for dsServiceName in rootDSE failed: %s\n", 
 			 ldb_errstring(ldb)));
 		goto failed;
 	}
-	talloc_steal(tmp_ctx, root_res);
 
 	if (root_res->count != 1) {
 		goto failed;
@@ -1189,11 +1188,10 @@ const struct GUID *samdb_ntds_invocation_id(struct ldb_context *ldb)
 		goto failed;
 	}
 
-	ret = ldb_search(ldb, samdb_ntds_settings_dn(ldb), LDB_SCOPE_BASE, NULL, attrs, &res);
+	ret = ldb_search(ldb, tmp_ctx, &res, samdb_ntds_settings_dn(ldb), LDB_SCOPE_BASE, attrs, NULL);
 	if (ret) {
 		goto failed;
 	}
-	talloc_steal(tmp_ctx, res);
 
 	if (res->count != 1) {
 		goto failed;
@@ -1283,11 +1281,10 @@ const struct GUID *samdb_ntds_objectGUID(struct ldb_context *ldb)
 		goto failed;
 	}
 
-	ret = ldb_search(ldb, samdb_ntds_settings_dn(ldb), LDB_SCOPE_BASE, NULL, attrs, &res);
+	ret = ldb_search(ldb, tmp_ctx, &res, samdb_ntds_settings_dn(ldb), LDB_SCOPE_BASE, attrs, NULL);
 	if (ret) {
 		goto failed;
 	}
-	talloc_steal(tmp_ctx, res);
 
 	if (res->count != 1) {
 		goto failed;
@@ -1397,14 +1394,13 @@ bool samdb_is_pdc(struct ldb_context *ldb)
 		return false;
 	}
 
-	ret = ldb_search(ldb, ldb_get_default_basedn(ldb), LDB_SCOPE_BASE, NULL, dom_attrs, &dom_res);
+	ret = ldb_search(ldb, tmp_ctx, &dom_res, ldb_get_default_basedn(ldb), LDB_SCOPE_BASE, dom_attrs, NULL);
 	if (ret) {
 		DEBUG(1,("Searching for fSMORoleOwner in %s failed: %s\n", 
 			 ldb_dn_get_linearized(ldb_get_default_basedn(ldb)), 
 			 ldb_errstring(ldb)));
 		goto failed;
 	}
-	talloc_steal(tmp_ctx, dom_res);
 	if (dom_res->count != 1) {
 		goto failed;
 	}
@@ -1444,17 +1440,17 @@ bool samdb_is_gc(struct ldb_context *ldb)
 	}
 
 	/* Query cn=ntds settings,.... */
-	ret = ldb_search(ldb, samdb_ntds_settings_dn(ldb), LDB_SCOPE_BASE, NULL, attrs, &res);
+	ret = ldb_search(ldb, tmp_ctx, &res, samdb_ntds_settings_dn(ldb), LDB_SCOPE_BASE, attrs, NULL);
 	if (ret) {
+		talloc_free(tmp_ctx);
 		return false;
 	}
 	if (res->count != 1) {
-		talloc_free(res);
+		talloc_free(tmp_ctx);
 		return false;
 	}
 
 	options = ldb_msg_find_attr_as_int(res->msgs[0], "options", 0);
-	talloc_free(res);
 	talloc_free(tmp_ctx);
 
 	/* if options attribute has the 0x00000001 flag set, then enable the global catlog */
@@ -1478,10 +1474,9 @@ int samdb_search_for_parent_domain(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
 	if (local_ctx == NULL) return LDB_ERR_OPERATIONS_ERROR;
 	
 	while ((sdn = ldb_dn_get_parent(local_ctx, sdn))) {
-		ret = ldb_search(ldb, sdn, LDB_SCOPE_BASE, 
-				 "(|(|(objectClass=domain)(objectClass=builtinDomain))(objectClass=samba4LocalDomain))", attrs, &res);
+		ret = ldb_search(ldb, local_ctx, &res, sdn, LDB_SCOPE_BASE, attrs,
+				 "(|(|(objectClass=domain)(objectClass=builtinDomain))(objectClass=samba4LocalDomain))");
 		if (ret == LDB_SUCCESS) {
-			talloc_steal(local_ctx, res);
 			if (res->count == 1) {
 				break;
 			}
@@ -1955,7 +1950,7 @@ struct ldb_dn *samdb_domain_to_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
 	struct ldb_result *res_domain_ref;
 	char *escaped_domain = ldb_binary_encode_string(mem_ctx, domain_name);
 	/* find the domain's DN */
-	int ret_domain = ldb_search_exp_fmt(ldb, mem_ctx, 
+	int ret_domain = ldb_search(ldb, mem_ctx,
 					    &res_domain_ref, 
 					    samdb_partitions_dn(ldb, mem_ctx), 
 					    LDB_SCOPE_ONELEVEL, 
@@ -1967,7 +1962,7 @@ struct ldb_dn *samdb_domain_to_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
 	}
 	
 	if (res_domain_ref->count == 0) {
-		ret_domain = ldb_search_exp_fmt(ldb, mem_ctx, 
+		ret_domain = ldb_search(ldb, mem_ctx,
 						&res_domain_ref, 
 						samdb_dns_domain_to_dn(ldb, mem_ctx, domain_name),
 						LDB_SCOPE_BASE,
diff --git a/source4/dsdb/repl/drepl_partitions.c b/source4/dsdb/repl/drepl_partitions.c
index 8a1c5aa..4f7afc0 100644
--- a/source4/dsdb/repl/drepl_partitions.c
+++ b/source4/dsdb/repl/drepl_partitions.c
@@ -48,8 +48,8 @@ WERROR dreplsrv_load_partitions(struct dreplsrv_service *s)
 	basedn = ldb_dn_new(s, s->samdb, NULL);
 	W_ERROR_HAVE_NO_MEMORY(basedn);
 
-	ret = ldb_search(s->samdb, basedn, LDB_SCOPE_BASE, 
-			 "(objectClass=*)", attrs, &r);
+	ret = ldb_search(s->samdb, s, &r, basedn, LDB_SCOPE_BASE, attrs,
+			 "(objectClass=*)");
 	talloc_free(basedn);
 	if (ret != LDB_SUCCESS) {
 		return WERR_FOOBAR;
@@ -57,7 +57,6 @@ WERROR dreplsrv_load_partitions(struct dreplsrv_service *s)
 		talloc_free(r);
 		return WERR_FOOBAR;
 	}
-	talloc_steal(s, r);
 
 	el = ldb_msg_find_element(r->msgs[0], "namingContexts");
 	if (!el) {
@@ -201,15 +200,14 @@ static WERROR dreplsrv_refresh_partition(struct dreplsrv_service *s,
 	DEBUG(2, ("dreplsrv_refresh_partition(%s)\n",
 		ldb_dn_get_linearized(p->dn)));
 
-	ret = ldb_search(s->samdb, p->dn, LDB_SCOPE_BASE,
-			 "(objectClass=*)", attrs, &r);
+	ret = ldb_search(s->samdb, mem_ctx, &r, p->dn, LDB_SCOPE_BASE, attrs,
+			 "(objectClass=*)");
 	if (ret != LDB_SUCCESS) {
 		return WERR_FOOBAR;
 	} else if (r->count != 1) {
 		talloc_free(r);
 		return WERR_FOOBAR;
 	}
-	talloc_steal(mem_ctx, r);
 
 	ZERO_STRUCT(p->nc);
 	p->nc.dn	= ldb_dn_alloc_linearized(p, p->dn);
diff --git a/source4/dsdb/samdb/cracknames.c b/source4/dsdb/samdb/cracknames.c
index 369b06c..7324d89 100644
--- a/source4/dsdb/samdb/cracknames.c
+++ b/source4/dsdb/samdb/cracknames.c
@@ -107,8 +107,8 @@ static enum drsuapi_DsNameStatus LDB_lookup_spn_alias(krb5_context context, stru
 		return DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR;
 	}
 
-	ret = ldb_search(ldb_ctx, service_dn, LDB_SCOPE_BASE, "(objectClass=nTDSService)",
-			 directory_attrs, &res);
+	ret = ldb_search(ldb_ctx, tmp_ctx, &res, service_dn, LDB_SCOPE_BASE,
+			 directory_attrs, "(objectClass=nTDSService)");
 
 	if (ret != LDB_SUCCESS && ret != LDB_ERR_NO_SUCH_OBJECT) {
 		DEBUG(1, ("ldb_search: dn: %s not found: %s", service_dn_str, ldb_errstring(ldb_ctx)));
@@ -121,7 +121,6 @@ static enum drsuapi_DsNameStatus LDB_lookup_spn_alias(krb5_context context, stru
 		DEBUG(1, ("ldb_search: dn: %s not found", service_dn_str));
 		return DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
 	}
-	talloc_steal(tmp_ctx, res);
 	
 	spnmappings = ldb_msg_find_element(res->msgs[0], "sPNMappings");
 	if (!spnmappings || spnmappings->num_values == 0) {
@@ -292,7 +291,7 @@ static WERROR DsCrackNameUPN(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx,
 	
 	realm = krb5_princ_realm(smb_krb5_context->krb5_context, principal);
 
-	ldb_ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &domain_res, 
+	ldb_ret = ldb_search(sam_ctx, mem_ctx, &domain_res,
 				     samdb_partitions_dn(sam_ctx, mem_ctx), 
 				     LDB_SCOPE_ONELEVEL,
 				     domain_attrs,
@@ -737,7 +736,7 @@ static WERROR DsCrackNameOneFilter(struct ldb_context *sam_ctx, TALLOC_CTX *mem_
 
 	if (domain_filter) {
 		/* if we have a domain_filter look it up and set the result_basedn and the dns_domain_name */
-		ldb_ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &domain_res, 
+		ldb_ret = ldb_search(sam_ctx, mem_ctx, &domain_res,
 					     partitions_basedn,
 					     LDB_SCOPE_ONELEVEL,
 					     domain_attrs,
@@ -774,7 +773,7 @@ static WERROR DsCrackNameOneFilter(struct ldb_context *sam_ctx, TALLOC_CTX *mem_
 		if (domain_res) {
 			result_basedn = samdb_result_dn(sam_ctx, mem_ctx, domain_res->msgs[0], "ncName", NULL);
 			
-			ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &res, 
+			ret = ldb_search(sam_ctx, mem_ctx, &res,
 						 result_basedn, LDB_SCOPE_SUBTREE, 
 						 result_attrs, "%s", result_filter);
 			if (ret != LDB_SUCCESS) {
@@ -936,7 +935,7 @@ static WERROR DsCrackNameOneFilter(struct ldb_context *sam_ctx, TALLOC_CTX *mem_
 		
 		if (samdb_find_attribute(sam_ctx, result, "objectClass", "domain")) {
 
-			ldb_ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &domain_res, 
+			ldb_ret = ldb_search(sam_ctx, mem_ctx, &domain_res,
 						     partitions_basedn,
 						     LDB_SCOPE_ONELEVEL,
 						     domain_attrs,
@@ -976,7 +975,7 @@ static WERROR DsCrackNameOneFilter(struct ldb_context *sam_ctx, TALLOC_CTX *mem_
 					return WERR_OK;
 				}
 				dom_sid->num_auths--;
-				ldb_ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &domain_res, 
+				ldb_ret = ldb_search(sam_ctx, mem_ctx, &domain_res,
 							     NULL,
 							     LDB_SCOPE_BASE,
 							     attrs,
@@ -1000,7 +999,7 @@ static WERROR DsCrackNameOneFilter(struct ldb_context *sam_ctx, TALLOC_CTX *mem_
 					return WERR_OK;
 				}
 
-				ldb_ret = ldb_search_exp_fmt(sam_ctx, mem_ctx, &domain_res2, 
+				ldb_ret = ldb_search(sam_ctx, mem_ctx, &domain_res2,
 							     partitions_basedn,
 							     LDB_SCOPE_ONELEVEL,
 							     domain_attrs,
diff --git a/source4/dsdb/samdb/ldb_modules/kludge_acl.c b/source4/dsdb/samdb/ldb_modules/kludge_acl.c
index bc998a8..6836f95 100644
--- a/source4/dsdb/samdb/ldb_modules/kludge_acl.c
+++ b/source4/dsdb/samdb/ldb_modules/kludge_acl.c
@@ -409,14 +409,12 @@ static int kludge_acl_init(struct ldb_module *module)
 		return LDB_ERR_OPERATIONS_ERROR;
 	}
 
-	ret = ldb_search(module->ldb, ldb_dn_new(mem_ctx, module->ldb, "@KLUDGEACL"),
-			 LDB_SCOPE_BASE,
-			 NULL, attrs,
-			 &res);
+	ret = ldb_search(module->ldb, mem_ctx, &res,
+			 ldb_dn_new(mem_ctx, module->ldb, "@KLUDGEACL"),
+			 LDB_SCOPE_BASE, attrs, NULL);
 	if (ret != LDB_SUCCESS) {
 		goto done;
 	}
-	talloc_steal(mem_ctx, res);
 	if (res->count == 0) {
 		goto done;
 	}
diff --git a/source4/dsdb/samdb/ldb_modules/naming_fsmo.c b/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
index 084540f..70f3e8d 100644
--- a/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/naming_fsmo.c
@@ -64,10 +64,9 @@ static int naming_fsmo_init(struct ldb_module *module)
 	}
 	module->private_data = naming_fsmo;
 
-	ret = ldb_search(module->ldb, naming_dn,
-			 LDB_SCOPE_BASE,
-			 NULL, naming_attrs,
-			 &naming_res);
+	ret = ldb_search(module->ldb, mem_ctx, &naming_res,
+			 naming_dn, LDB_SCOPE_BASE,
+			 naming_attrs, NULL);
 	if (ret == LDB_ERR_NO_SUCH_OBJECT) {
 		ldb_debug(module->ldb, LDB_DEBUG_WARNING,
 			  "naming_fsmo_init: no partitions dn present: (skip loading of naming contexts details)\n");
@@ -81,7 +80,6 @@ static int naming_fsmo_init(struct ldb_module *module)
 		talloc_free(mem_ctx);
 		return ret;
 	}
-	talloc_steal(mem_ctx, naming_res);
 	if (naming_res->count == 0) {
 		ldb_debug(module->ldb, LDB_DEBUG_WARNING,
 			  "naming_fsmo_init: no cross-ref container present: (skip loading of naming contexts details)\n");
diff --git a/source4/dsdb/samdb/ldb_modules/partition.c b/source4/dsdb/samdb/ldb_modules/partition.c
index 9cae6ab..0cd0baf 100644
--- a/source4/dsdb/samdb/ldb_modules/partition.c
+++ b/source4/dsdb/samdb/ldb_modules/partition.c
@@ -807,15 +807,13 @@ static int partition_init(struct ldb_module *module)
 		return LDB_ERR_OPERATIONS_ERROR;
 	}
 
-	ret = ldb_search(module->ldb, ldb_dn_new(mem_ctx, module->ldb, "@PARTITION"),
-			 LDB_SCOPE_BASE,
-			 NULL, attrs,
-			 &res);
+	ret = ldb_search(module->ldb, mem_ctx, &res,
+			 ldb_dn_new(mem_ctx, module->ldb, "@PARTITION"),
+			 LDB_SCOPE_BASE, attrs, NULL);
 	if (ret != LDB_SUCCESS) {
 		talloc_free(mem_ctx);
 		return ret;
 	}
-	talloc_steal(mem_ctx, res);
 	if (res->count == 0) {
 		talloc_free(mem_ctx);
 		return ldb_next_init(module);
diff --git a/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c b/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
index 09d56d7..a5e7031 100644
--- a/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/pdc_fsmo.c
@@ -63,10 +63,9 @@ static int pdc_fsmo_init(struct ldb_module *module)
 	}
 	module->private_data = pdc_fsmo;
 
-	ret = ldb_search(module->ldb, pdc_dn,
-			 LDB_SCOPE_BASE,
-			 NULL, pdc_attrs,
-			 &pdc_res);
+	ret = ldb_search(module->ldb, mem_ctx, &pdc_res,
+			 pdc_dn, LDB_SCOPE_BASE,
+			 pdc_attrs, NULL);
 	if (ret == LDB_ERR_NO_SUCH_OBJECT) {
 		ldb_debug(module->ldb, LDB_DEBUG_WARNING,
 			  "pdc_fsmo_init: no domain object present: (skip loading of domain details)\n");
@@ -79,7 +78,6 @@ static int pdc_fsmo_init(struct ldb_module *module)
 		talloc_free(mem_ctx);
 		return ret;
 	}
-	talloc_steal(mem_ctx, pdc_res);
 	if (pdc_res->count == 0) {
 		ldb_debug(module->ldb, LDB_DEBUG_WARNING,
 			  "pdc_fsmo_init: no domain object present: (skip loading of domain details)\n");
diff --git a/source4/dsdb/samdb/ldb_modules/proxy.c b/source4/dsdb/samdb/ldb_modules/proxy.c
index 0d06542..d0a315e 100644
--- a/source4/dsdb/samdb/ldb_modules/proxy.c
+++ b/source4/dsdb/samdb/ldb_modules/proxy.c
@@ -73,7 +73,7 @@ static int load_proxy_info(struct ldb_module *module)
 	if (dn == NULL) {
 		goto failed;
 	}
-	ret = ldb_search(module->ldb, dn, LDB_SCOPE_BASE, NULL, NULL, &res);
+	ret = ldb_search(module->ldb, proxy, &res, dn, LDB_SCOPE_BASE, NULL, NULL);
 	talloc_free(dn);
 	if (ret != LDB_SUCCESS || res->count != 1) {
 		ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Can't find @PROXYINFO\n");
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c
index bd491bd..cf72066 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -131,7 +131,7 @@ static int samldb_find_next_rid(struct ldb_module *module, TALLOC_CTX *mem_ctx,
 	int ret;
 	const char *str;
 
-	ret = ldb_search(module->ldb, dn, LDB_SCOPE_BASE, "nextRid=*", attrs, &res);
+	ret = ldb_search(module->ldb, mem_ctx, &res, dn, LDB_SCOPE_BASE, attrs, "nextRid=*");
 	if (ret != LDB_SUCCESS) {
 		return ret;
 	}
@@ -207,7 +207,7 @@ static int samldb_get_new_sid(struct ldb_module *module,
 
 	/* find the domain sid */
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list