r19332: ldb_parse_tree leaks
authorSimo Sorce <idra@samba.org>
Mon, 16 Oct 2006 12:03:55 +0000 (12:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:21:11 +0000 (14:21 -0500)
(This used to be commit 3e0e2787c1da1c3831e21b163e1370001d725a3d)

source4/dsdb/samdb/ldb_modules/local_password.c
source4/dsdb/samdb/ldb_modules/password_hash.c
source4/lib/ldb/modules/objectclass.c
source4/lib/ldb/tools/ldbsearch.c

index 85e4318693803eea28e88f3ca451d1082e04a265..a19b71a44f0ac96cf112d50bb537a2e11d492d5f 100644 (file)
@@ -402,7 +402,7 @@ static int local_password_mod_search_self(struct ldb_handle *h) {
        ac->search_req->operation = LDB_SEARCH;
        ac->search_req->op.search.base = ac->orig_req->op.mod.message->dn;
        ac->search_req->op.search.scope = LDB_SCOPE_BASE;
-       ac->search_req->op.search.tree = ldb_parse_tree(ac->module->ldb, NULL);
+       ac->search_req->op.search.tree = ldb_parse_tree(ac->orig_req, NULL);
        if (ac->search_req->op.search.tree == NULL) {
                ldb_set_errstring(ac->module->ldb, "Invalid search filter");
                return LDB_ERR_OPERATIONS_ERROR;
@@ -601,7 +601,7 @@ static int lpdb_remote_search_callback(struct ldb_context *ldb, void *context, s
                }
                req->operation = LDB_SEARCH;
                req->op.search.scope = LDB_SCOPE_BASE;
-               req->op.search.tree = ldb_parse_tree(ac->module->ldb, NULL);
+               req->op.search.tree = ldb_parse_tree(req, NULL);
                if (req->op.search.tree == NULL) {
                        ldb_set_errstring(ac->module->ldb, "Out of Memory");
                        return LDB_ERR_OPERATIONS_ERROR;
index 8bfd46e64169ea905816520af3af4a28cd3e130f..9ba7bc44c4be4e4289e4b5a87f8d04575f80dcf6 100644 (file)
@@ -924,7 +924,7 @@ static int password_hash_mod_search_self(struct ldb_handle *h) {
        ac->search_req->operation = LDB_SEARCH;
        ac->search_req->op.search.base = ac->orig_req->op.mod.message->dn;
        ac->search_req->op.search.scope = LDB_SCOPE_BASE;
-       ac->search_req->op.search.tree = ldb_parse_tree(ac->module->ldb, NULL);
+       ac->search_req->op.search.tree = ldb_parse_tree(ac->search_req, NULL);
        if (ac->search_req->op.search.tree == NULL) {
                ldb_set_errstring(ac->module->ldb, "Invalid search filter");
                return LDB_ERR_OPERATIONS_ERROR;
index 493ecdaad401091c850307b9d36d15a8763976b2..e4040a8e3d18d765dbef173c2fea020e5ea60979 100644 (file)
@@ -464,7 +464,7 @@ static int objectclass_search_self(struct ldb_handle *h) {
        ac->search_req->operation = LDB_SEARCH;
        ac->search_req->op.search.base = ac->orig_req->op.mod.message->dn;
        ac->search_req->op.search.scope = LDB_SCOPE_BASE;
-       ac->search_req->op.search.tree = ldb_parse_tree(ac->module->ldb, NULL);
+       ac->search_req->op.search.tree = ldb_parse_tree(ac->search_req, NULL);
        if (ac->search_req->op.search.tree == NULL) {
                ldb_set_errstring(ac->module->ldb, "objectclass: Internal error producing null search");
                return LDB_ERR_OPERATIONS_ERROR;
index 23d8115c2010a90738f5e9a250ba4e22e627f227..837dfc9088ce4de7f0d823cf19c34b875893c03c 100644 (file)
@@ -215,7 +215,7 @@ static int do_search(struct ldb_context *ldb,
        req->operation = LDB_SEARCH;
        req->op.search.base = basedn;
        req->op.search.scope = options->scope;
-       req->op.search.tree = ldb_parse_tree(ldb, expression);
+       req->op.search.tree = ldb_parse_tree(req, expression);
        if (req->op.search.tree == NULL) return -1;
        req->op.search.attrs = attrs;
        req->controls = sctx->req_ctrls;