mirror of
https://github.com/samba-team/samba.git
synced 2025-11-12 04:23:49 +03:00
r19365: fixed a memory leak in the ldb attribute handling
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
916413097d
commit
d7e0768516
@@ -71,13 +71,7 @@ static void ltdb_attributes_unload(struct ldb_module *module)
|
||||
|
||||
msg = ltdb->cache->attributes;
|
||||
for (i=0;i<msg->num_elements;i++) {
|
||||
const struct ldb_attrib_handler *h;
|
||||
/* this is rather ugly - a consequence of const handling */
|
||||
h = ldb_attrib_handler(module->ldb, msg->elements[i].name);
|
||||
ldb_remove_attrib_handler(module->ldb, msg->elements[i].name);
|
||||
if (strcmp(h->attr, msg->elements[i].name) == 0) {
|
||||
talloc_steal(msg, h->attr);
|
||||
}
|
||||
}
|
||||
|
||||
talloc_free(ltdb->cache->attributes);
|
||||
@@ -163,11 +157,11 @@ static int ltdb_attributes_load(struct ldb_module *module)
|
||||
goto failed;
|
||||
}
|
||||
h2 = *h;
|
||||
h2.attr = talloc_strdup(module, msg->elements[i].name);
|
||||
h2.attr = msg->elements[i].name;
|
||||
h2.flags |= LDB_ATTR_FLAG_ALLOCATED;
|
||||
if (ldb_set_attrib_handlers(module->ldb, &h2, 1) != 0) {
|
||||
goto failed;
|
||||
}
|
||||
talloc_steal(module->ldb->schema.attrib_handlers, h2.attr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user