1
0
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:
Andrew Tridgell
2006-10-17 05:50:01 +00:00
committed by Gerald (Jerry) Carter
parent 916413097d
commit d7e0768516
3 changed files with 19 additions and 8 deletions

View File

@@ -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;