From 89be634b9d33cd6be7d781777712832f1093138e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 2 Dec 2008 16:25:38 +1100 Subject: [PATCH] Be less aggressive with talloc_free() - avoid memory corruption It seems the talloc tree in ldb is very complex - better to just let it be cleaned up by the caller when they are done with the whole thing. Andrew Bartlett --- source4/dsdb/samdb/ldb_modules/extended_dn_in.c | 4 ---- source4/dsdb/samdb/ldb_modules/extended_dn_store.c | 4 ---- 2 files changed, 8 deletions(-) diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_in.c b/source4/dsdb/samdb/ldb_modules/extended_dn_in.c index 928cf387f4f..f21c171b7bc 100644 --- a/source4/dsdb/samdb/ldb_modules/extended_dn_in.c +++ b/source4/dsdb/samdb/ldb_modules/extended_dn_in.c @@ -54,8 +54,6 @@ static int extended_final_callback(struct ldb_request *req, struct ldb_reply *ar if (ares->error != LDB_SUCCESS) { ret = ldb_module_done(ac->req, ares->controls, ares->response, ares->error); - talloc_steal(ac->req, ares); - talloc_free(ac); } else { switch (ares->type) { case LDB_REPLY_ENTRY: @@ -70,8 +68,6 @@ static int extended_final_callback(struct ldb_request *req, struct ldb_reply *ar ret = ldb_module_done(ac->req, ares->controls, ares->response, ares->error); - talloc_steal(ac->req, ares); - talloc_free(ac); break; } } diff --git a/source4/dsdb/samdb/ldb_modules/extended_dn_store.c b/source4/dsdb/samdb/ldb_modules/extended_dn_store.c index 9ae9f6953b8..b39a1379c74 100644 --- a/source4/dsdb/samdb/ldb_modules/extended_dn_store.c +++ b/source4/dsdb/samdb/ldb_modules/extended_dn_store.c @@ -95,8 +95,6 @@ static int extended_final_callback(struct ldb_request *req, struct ldb_reply *ar if (ares->error != LDB_SUCCESS) { ret = ldb_module_done(ac->req, ares->controls, ares->response, ares->error); - talloc_steal(ac->req, ares); - talloc_free(ac); } else { switch (ares->type) { case LDB_REPLY_ENTRY: @@ -111,8 +109,6 @@ static int extended_final_callback(struct ldb_request *req, struct ldb_reply *ar ret = ldb_module_done(ac->req, ares->controls, ares->response, ares->error); - talloc_steal(ac->req, ares); - talloc_free(ac); break; } } -- 2.34.1