1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

r6470: Remove ldb_search_free() it is not needed anymore.

Just use talloc_free() to release the memory after an ldb_search().
This commit is contained in:
Simo Sorce 2005-04-25 12:46:18 +00:00 committed by Gerald (Jerry) Carter
parent acf1d0a1b5
commit 4f0948dab0
20 changed files with 33 additions and 118 deletions

View File

@ -51,12 +51,6 @@ static int samldb_search(struct ldb_module *module, const char *base,
return ldb_next_search(module, base, scope, expression, attrs, res); return ldb_next_search(module, base, scope, expression, attrs, res);
} }
static int samldb_search_free(struct ldb_module *module, struct ldb_message **res)
{
ldb_debug(module->ldb, LDB_DEBUG_TRACE, "samldb_search_free\n");
return ldb_next_search_free(module, res);
}
/* /*
allocate a new id, attempting to do it atomically allocate a new id, attempting to do it atomically
return 0 on failure, the id on success return 0 on failure, the id on success
@ -74,13 +68,13 @@ static int samldb_allocate_next_rid(struct ldb_context *ldb, TALLOC_CTX *mem_ctx
ret = ldb_search(ldb, dn, LDB_SCOPE_BASE, "nextRid=*", attrs, &res); ret = ldb_search(ldb, dn, LDB_SCOPE_BASE, "nextRid=*", attrs, &res);
if (ret != 1) { if (ret != 1) {
if (res) ldb_search_free(ldb, res); if (res) talloc_free(res);
return -1; return -1;
} }
str = ldb_msg_find_string(res[0], "nextRid", NULL); str = ldb_msg_find_string(res[0], "nextRid", NULL);
if (str == NULL) { if (str == NULL) {
ldb_debug(ldb, LDB_DEBUG_FATAL, "attribute nextRid not found in %s\n", dn); ldb_debug(ldb, LDB_DEBUG_FATAL, "attribute nextRid not found in %s\n", dn);
ldb_search_free(ldb, res); talloc_free(res);
return -1; return -1;
} }
@ -88,10 +82,10 @@ static int samldb_allocate_next_rid(struct ldb_context *ldb, TALLOC_CTX *mem_ctx
if ((*id)+1 == 0) { if ((*id)+1 == 0) {
/* out of IDs ! */ /* out of IDs ! */
ldb_debug(ldb, LDB_DEBUG_FATAL, "Are we out of valid IDs ?\n"); ldb_debug(ldb, LDB_DEBUG_FATAL, "Are we out of valid IDs ?\n");
ldb_search_free(ldb, res); talloc_free(res);
return -1; return -1;
} }
ldb_search_free(ldb, res); talloc_free(res);
/* we do a delete and add as a single operation. That prevents /* we do a delete and add as a single operation. That prevents
a race */ a race */
@ -150,7 +144,7 @@ static char *samldb_search_domain(struct ldb_module *module, TALLOC_CTX *mem_ctx
sdn++; sdn++;
ret = ldb_search(module->ldb, sdn, LDB_SCOPE_BASE, "objectClass=domain", NULL, &res); ret = ldb_search(module->ldb, sdn, LDB_SCOPE_BASE, "objectClass=domain", NULL, &res);
ldb_search_free(module->ldb, res); talloc_free(res);
if (ret == 1) if (ret == 1)
break; break;
@ -195,14 +189,14 @@ static char *samldb_get_new_sid(struct ldb_module *module, TALLOC_CTX *mem_ctx,
ret = ldb_search(module->ldb, dom_dn, LDB_SCOPE_BASE, "objectSid=*", attrs, &res); ret = ldb_search(module->ldb, dom_dn, LDB_SCOPE_BASE, "objectSid=*", attrs, &res);
if (ret != 1) { if (ret != 1) {
ldb_debug(module->ldb, LDB_DEBUG_FATAL, "samldb_get_new_sid: error retrieving domain sid!\n"); ldb_debug(module->ldb, LDB_DEBUG_FATAL, "samldb_get_new_sid: error retrieving domain sid!\n");
if (res) ldb_search_free(module->ldb, res); if (res) talloc_free(res);
return NULL; return NULL;
} }
dom_sid = ldb_msg_find_string(res[0], "objectSid", NULL); dom_sid = ldb_msg_find_string(res[0], "objectSid", NULL);
if (dom_sid == NULL) { if (dom_sid == NULL) {
ldb_debug(module->ldb, LDB_DEBUG_FATAL, "samldb_get_new_sid: error retrieving domain sid!\n"); ldb_debug(module->ldb, LDB_DEBUG_FATAL, "samldb_get_new_sid: error retrieving domain sid!\n");
ldb_search_free(module->ldb, res); talloc_free(res);
return NULL; return NULL;
} }
@ -218,7 +212,7 @@ static char *samldb_get_new_sid(struct ldb_module *module, TALLOC_CTX *mem_ctx,
} }
if (ret != 0) { if (ret != 0) {
ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Failed to increment nextRid of %s\n", dom_dn); ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Failed to increment nextRid of %s\n", dom_dn);
ldb_search_free(module->ldb, res); talloc_free(res);
return NULL; return NULL;
} }
@ -226,7 +220,8 @@ static char *samldb_get_new_sid(struct ldb_module *module, TALLOC_CTX *mem_ctx,
obj_sid = talloc_asprintf(mem_ctx, "%s-%u", dom_sid, rid); obj_sid = talloc_asprintf(mem_ctx, "%s-%u", dom_sid, rid);
ldb_search_free(module->ldb, res); talloc_free(res);
return obj_sid; return obj_sid;
} }
@ -349,13 +344,13 @@ static int samldb_copy_template(struct ldb_module *module, struct ldb_message *m
NULL, NULL,
(char *)el->values[j].data)) { (char *)el->values[j].data)) {
ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Attribute adding failed...\n"); ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Attribute adding failed...\n");
ldb_search_free(module->ldb, res); talloc_free(res);
return -1; return -1;
} }
} }
} }
ldb_search_free(module->ldb, res); talloc_free(res);
return 0; return 0;
} }
@ -606,7 +601,6 @@ static int samldb_destructor(void *module_ctx)
static const struct ldb_module_ops samldb_ops = { static const struct ldb_module_ops samldb_ops = {
"samldb", "samldb",
samldb_search, samldb_search,
samldb_search_free,
samldb_add_record, samldb_add_record,
samldb_modify_record, samldb_modify_record,
samldb_delete_record, samldb_delete_record,

View File

@ -78,15 +78,6 @@ int samdb_search_domain(struct ldb_context *sam_ldb,
return count; return count;
} }
/*
free up a search result
*/
int samdb_search_free(struct ldb_context *sam_ldb,
TALLOC_CTX *mem_ctx, struct ldb_message **res)
{
return ldb_search_free(sam_ldb, res);
}
/* /*
search the sam for a single string attribute in exactly 1 record search the sam for a single string attribute in exactly 1 record
*/ */
@ -106,7 +97,7 @@ const char *samdb_search_string_v(struct ldb_context *sam_ldb,
attr_name, format, count)); attr_name, format, count));
} }
if (count != 1) { if (count != 1) {
samdb_search_free(sam_ldb, mem_ctx, res); talloc_free(res);
return NULL; return NULL;
} }
@ -235,14 +226,14 @@ int samdb_search_string_multiple(struct ldb_context *sam_ldb,
if (res[i]->num_elements != 1) { if (res[i]->num_elements != 1) {
DEBUG(1,("samdb: search for %s %s not single valued\n", DEBUG(1,("samdb: search for %s %s not single valued\n",
attr_name, format)); attr_name, format));
samdb_search_free(sam_ldb, mem_ctx, res); talloc_free(res);
return -1; return -1;
} }
} }
*strs = talloc_array(mem_ctx, const char *, count+1); *strs = talloc_array(mem_ctx, const char *, count+1);
if (! *strs) { if (! *strs) {
samdb_search_free(sam_ldb, mem_ctx, res); talloc_free(res);
return -1; return -1;
} }

View File

@ -81,6 +81,9 @@ struct ldb_context *ldb_connect(const char *url, unsigned int flags,
search the database given a LDAP-like search expression search the database given a LDAP-like search expression
return the number of records found, or -1 on error return the number of records found, or -1 on error
Use talloc_free to free the ldb_message returned in 'res'
*/ */
int ldb_search(struct ldb_context *ldb, int ldb_search(struct ldb_context *ldb,
const char *base, const char *base,
@ -91,15 +94,6 @@ int ldb_search(struct ldb_context *ldb,
return ldb->modules->ops->search(ldb->modules, base, scope, expression, attrs, res); return ldb->modules->ops->search(ldb->modules, base, scope, expression, attrs, res);
} }
/*
free a set of messages returned by ldb_search
*/
int ldb_search_free(struct ldb_context *ldb, struct ldb_message **msgs)
{
return ldb->modules->ops->search_free(ldb->modules, msgs);
}
/* /*
add a record to the database. Will fail if a record with the given class and key add a record to the database. Will fail if a record with the given class and key
already exists already exists

View File

@ -224,14 +224,6 @@ int ldb_next_search(struct ldb_module *module,
return module->next->ops->search(module->next, base, scope, expression, attrs, res); return module->next->ops->search(module->next, base, scope, expression, attrs, res);
} }
int ldb_next_search_free(struct ldb_module *module, struct ldb_message **msg)
{
if (!module->next) {
return -1;
}
return module->next->ops->search_free(module->next, msg);
}
int ldb_next_add_record(struct ldb_module *module, const struct ldb_message *message) int ldb_next_add_record(struct ldb_module *module, const struct ldb_message *message)
{ {
if (!module->next) { if (!module->next) {

View File

@ -162,6 +162,8 @@ struct ldb_context *ldb_connect(const char *url, unsigned int flags,
search the database given a LDAP-like search expression search the database given a LDAP-like search expression
return the number of records found, or -1 on error return the number of records found, or -1 on error
use talloc_free to free the ldb_message returned
*/ */
int ldb_search(struct ldb_context *ldb, int ldb_search(struct ldb_context *ldb,
const char *base, const char *base,
@ -169,12 +171,6 @@ int ldb_search(struct ldb_context *ldb,
const char *expression, const char *expression,
const char * const *attrs, struct ldb_message ***res); const char * const *attrs, struct ldb_message ***res);
/*
free a set of messages returned by ldb_search
*/
int ldb_search_free(struct ldb_context *ldb, struct ldb_message **msgs);
/* /*
add a record to the database. Will fail if a record with the given class and key add a record to the database. Will fail if a record with the given class and key
already exists already exists

View File

@ -57,7 +57,6 @@ struct ldb_module_ops {
const char *name; const char *name;
int (*search)(struct ldb_module *, const char *, enum ldb_scope, int (*search)(struct ldb_module *, const char *, enum ldb_scope,
const char *, const char * const [], struct ldb_message ***); const char *, const char * const [], struct ldb_message ***);
int (*search_free)(struct ldb_module *, struct ldb_message **);
int (*add_record)(struct ldb_module *, const struct ldb_message *); int (*add_record)(struct ldb_module *, const struct ldb_message *);
int (*modify_record)(struct ldb_module *, const struct ldb_message *); int (*modify_record)(struct ldb_module *, const struct ldb_message *);
int (*delete_record)(struct ldb_module *, const char *); int (*delete_record)(struct ldb_module *, const char *);
@ -89,7 +88,6 @@ int ldb_next_search(struct ldb_module *module,
enum ldb_scope scope, enum ldb_scope scope,
const char *expression, const char *expression,
const char * const *attrs, struct ldb_message ***res); const char * const *attrs, struct ldb_message ***res);
int ldb_next_search_free(struct ldb_module *module, struct ldb_message **msg);
int ldb_next_add_record(struct ldb_module *module, const struct ldb_message *message); int ldb_next_add_record(struct ldb_module *module, const struct ldb_message *message);
int ldb_next_modify_record(struct ldb_module *module, const struct ldb_message *message); int ldb_next_modify_record(struct ldb_module *module, const struct ldb_message *message);
int ldb_next_delete_record(struct ldb_module *module, const char *dn); int ldb_next_delete_record(struct ldb_module *module, const char *dn);

View File

@ -125,16 +125,6 @@ static int lldb_delete(struct ldb_module *module, const char *dn)
return ret; return ret;
} }
/*
free a search result
*/
static int lldb_search_free(struct ldb_module *module, struct ldb_message **res)
{
talloc_free(res);
return 0;
}
/* /*
add a single set of ldap message values to a ldb_message add a single set of ldap message values to a ldb_message
*/ */
@ -290,7 +280,7 @@ static int lldb_search(struct ldb_module *module, const char *base,
return msg_count; return msg_count;
failed: failed:
if (*res) lldb_search_free(module, *res); if (*res) talloc_free(*res);
return -1; return -1;
} }
@ -459,7 +449,6 @@ static const char *lldb_errstring(struct ldb_module *module)
static const struct ldb_module_ops lldb_ops = { static const struct ldb_module_ops lldb_ops = {
"ldap", "ldap",
lldb_search, lldb_search,
lldb_search_free,
lldb_add, lldb_add,
lldb_modify, lldb_modify,
lldb_delete, lldb_delete,

View File

@ -415,20 +415,6 @@ static int search_func(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, voi
} }
/*
free a set of search results
*/
int ltdb_search_free(struct ldb_module *module, struct ldb_message **msgs)
{
struct ltdb_private *ltdb = module->private_data;
ltdb->last_err_string = NULL;
talloc_free(msgs);
return 0;
}
/* /*
search the database with a LDAP-like expression. search the database with a LDAP-like expression.
this is the "full search" non-indexed variant this is the "full search" non-indexed variant

View File

@ -797,7 +797,6 @@ static const char *ltdb_errstring(struct ldb_module *module)
static const struct ldb_module_ops ltdb_ops = { static const struct ldb_module_ops ltdb_ops = {
"tdb", "tdb",
ltdb_search, ltdb_search,
ltdb_search_free,
ltdb_add, ltdb_add,
ltdb_modify, ltdb_modify,
ltdb_delete, ltdb_delete,

View File

@ -95,7 +95,6 @@ int ltdb_add_attr_results(struct ldb_module *module, struct ldb_message *msg,
const char * const attrs[], const char * const attrs[],
int *count, int *count,
struct ldb_message ***res); struct ldb_message ***res);
int ltdb_search_free(struct ldb_module *module, struct ldb_message **msgs);
int ltdb_search(struct ldb_module *module, const char *base, int ltdb_search(struct ldb_module *module, const char *base,
enum ldb_scope scope, const char *expression, enum ldb_scope scope, const char *expression,
const char * const attrs[], struct ldb_message ***res); const char * const attrs[], struct ldb_message ***res);

View File

@ -66,8 +66,6 @@ dit(bf(ldb_connect(3))) connect to a ldb backend
dit(bf(ldb_search(3))) perform a database search dit(bf(ldb_search(3))) perform a database search
dit(bf(ldb_search_free(3))) free the results of a ldb_search
dit(bf(ldb_add(3))) add a record to the database dit(bf(ldb_add(3))) add a record to the database
dit(bf(ldb_delete(3))) delete a record from the database dit(bf(ldb_delete(3))) delete a record from the database

View File

@ -166,7 +166,7 @@ static int get_entry_attributes(struct ldb_context *ldb, const char *dn, struct
/* set flags to 0 as flags on search have undefined values */ /* set flags to 0 as flags on search have undefined values */
ret = get_msg_attributes(ss, *srch, 0); ret = get_msg_attributes(ss, *srch, 0);
if (ret != 0) { if (ret != 0) {
ldb_search_free(ldb, srch); talloc_free(srch);
return ret; return ret;
} }
@ -306,12 +306,6 @@ static int schema_search(struct ldb_module *module, const char *base,
return ldb_next_search(module, base, scope, expression, attrs, res); return ldb_next_search(module, base, scope, expression, attrs, res);
} }
/* search_free */
static int schema_search_free(struct ldb_module *module, struct ldb_message **res)
{
return ldb_next_search_free(module, res);
}
/* add_record */ /* add_record */
static int schema_add_record(struct ldb_module *module, const struct ldb_message *msg) static int schema_add_record(struct ldb_module *module, const struct ldb_message *msg)
{ {
@ -549,7 +543,6 @@ static int schema_destructor(void *module_ctx)
static const struct ldb_module_ops schema_ops = { static const struct ldb_module_ops schema_ops = {
"schema", "schema",
schema_search, schema_search,
schema_search_free,
schema_add_record, schema_add_record,
schema_modify_record, schema_modify_record,
schema_delete_record, schema_delete_record,

View File

@ -44,12 +44,6 @@ static int skel_search(struct ldb_module *module, const char *base,
return ldb_next_search(module, base, scope, expression, attrs, res); return ldb_next_search(module, base, scope, expression, attrs, res);
} }
/* search_free */
static int skel_search_free(struct ldb_module *module, struct ldb_message **res)
{
return ldb_next_search_free(module, res);
}
/* add_record */ /* add_record */
static int skel_add_record(struct ldb_module *module, const struct ldb_message *msg) static int skel_add_record(struct ldb_module *module, const struct ldb_message *msg)
{ {
@ -102,7 +96,6 @@ static int skel_destructor(void *module_ctx)
static const struct ldb_module_ops skel_ops = { static const struct ldb_module_ops skel_ops = {
"skel", "skel",
skel_search, skel_search,
skel_search_free,
skel_add_record, skel_add_record,
skel_modify_record, skel_modify_record,
skel_delete_record, skel_delete_record,

View File

@ -49,12 +49,6 @@ static int timestamps_search(struct ldb_module *module, const char *base,
return ldb_next_search(module, base, scope, expression, attrs, res); return ldb_next_search(module, base, scope, expression, attrs, res);
} }
static int timestamps_search_free(struct ldb_module *module, struct ldb_message **res)
{
ldb_debug(module->ldb, LDB_DEBUG_TRACE, "timestamps_search_free\n");
return ldb_next_search_free(module, res);
}
static int add_time_element(struct ldb_module *module, struct ldb_message *msg, static int add_time_element(struct ldb_module *module, struct ldb_message *msg,
const char *attr_name, const char *time_string, unsigned int flags) const char *attr_name, const char *time_string, unsigned int flags)
{ {
@ -255,7 +249,6 @@ static int timestamps_destructor(void *module_ctx)
static const struct ldb_module_ops timestamps_ops = { static const struct ldb_module_ops timestamps_ops = {
"timestamps", "timestamps",
timestamps_search, timestamps_search,
timestamps_search_free,
timestamps_add_record, timestamps_add_record,
timestamps_modify_record, timestamps_modify_record,
timestamps_delete_record, timestamps_delete_record,

View File

@ -55,7 +55,7 @@ static int ldb_delete_recursive(struct ldb_context *ldb, const char *dn)
} }
} }
ldb_search_free(ldb, res); talloc_free(res);
if (total == 0) { if (total == 0) {
return -1; return -1;

View File

@ -427,9 +427,9 @@ static void usage(void)
do_edit(ldb, msgs, ret, editor); do_edit(ldb, msgs, ret, editor);
if (ret > 0) { if (ret > 0) {
ret = ldb_search_free(ldb, msgs); ret = talloc_free(msgs);
if (ret == -1) { if (ret == -1) {
fprintf(stderr, "search_free failed - %s\n", ldb_errstring(ldb)); fprintf(stderr, "talloc_free failed\n");
exit(1); exit(1);
} }
} }

View File

@ -81,9 +81,9 @@ static int do_search(struct ldb_context *ldb,
} }
if (ret > 0) { if (ret > 0) {
ret = ldb_search_free(ldb, msgs); ret = talloc_free(msgs);
if (ret == -1) { if (ret == -1) {
fprintf(stderr, "search_free failed\n"); fprintf(stderr, "talloc_free failed\n");
exit(1); exit(1);
} }
} }

View File

@ -248,7 +248,7 @@ static void search_uid(struct ldb_context *ldb, int nrecords, int nsearches)
} }
if (ret > 0) { if (ret > 0) {
ldb_search_free(ldb, res); talloc_free(res);
} }
printf("testing uid %d/%d - %d \r", i, uid, ret); printf("testing uid %d/%d - %d \r", i, uid, ret);

View File

@ -102,12 +102,12 @@ static int reg_close_ldb_key (void *data)
struct ldb_context *c = key->hive->backend_data; struct ldb_context *c = key->hive->backend_data;
if (kd->subkeys) { if (kd->subkeys) {
ldb_search_free(c, kd->subkeys); talloc_free(kd->subkeys);
kd->subkeys = NULL; kd->subkeys = NULL;
} }
if (kd->values) { if (kd->values) {
ldb_search_free(c, kd->values); talloc_free(kd->values);
kd->values = NULL; kd->values = NULL;
} }
return 0; return 0;
@ -224,7 +224,7 @@ static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, struct registry_key *h, const ch
(*key)->backend_data = newkd = talloc_zero(*key, struct ldb_key_data); (*key)->backend_data = newkd = talloc_zero(*key, struct ldb_key_data);
newkd->dn = talloc_strdup(mem_ctx, msg[0]->dn); newkd->dn = talloc_strdup(mem_ctx, msg[0]->dn);
ldb_search_free(c, msg); talloc_free(msg);
return WERR_OK; return WERR_OK;
} }

View File

@ -3330,14 +3330,14 @@ static NTSTATUS samr_GetDomPwInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX
return NT_STATUS_NO_SUCH_DOMAIN; return NT_STATUS_NO_SUCH_DOMAIN;
} }
if (ret > 1) { if (ret > 1) {
samdb_search_free(sam_ctx, mem_ctx, msgs); talloc_free(msgs);
return NT_STATUS_INTERNAL_DB_CORRUPTION; return NT_STATUS_INTERNAL_DB_CORRUPTION;
} }
r->out.info.min_password_length = samdb_result_uint(msgs[0], "minPwdLength", 0); r->out.info.min_password_length = samdb_result_uint(msgs[0], "minPwdLength", 0);
r->out.info.password_properties = samdb_result_uint(msgs[0], "pwdProperties", 1); r->out.info.password_properties = samdb_result_uint(msgs[0], "pwdProperties", 1);
samdb_search_free(sam_ctx, mem_ctx, msgs); talloc_free(msgs);
talloc_free(sam_ctx); talloc_free(sam_ctx);
return NT_STATUS_OK; return NT_STATUS_OK;