[PATCH] s4:ldb - fixed dangling pointer in ldb_request_add_control()

Endi S. Dewata edewata at redhat.com
Tue Oct 13 23:54:52 MDT 2009


---
 source4/lib/ldb/common/ldb_controls.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/source4/lib/ldb/common/ldb_controls.c b/source4/lib/ldb/common/ldb_controls.c
index 32b2c0f..a8dd6b5 100644
--- a/source4/lib/ldb/common/ldb_controls.c
+++ b/source4/lib/ldb/common/ldb_controls.c
@@ -123,7 +123,7 @@ int check_critical_controls(struct ldb_control **controls)
 
 int ldb_request_add_control(struct ldb_request *req, const char *oid, bool critical, void *data)
 {
-	unsigned n;
+	unsigned i, n;
 	struct ldb_control **ctrls;
 	struct ldb_control *ctrl;
 
@@ -135,10 +135,15 @@ int ldb_request_add_control(struct ldb_request *req, const char *oid, bool criti
 		n++; 
 	}
 
-	ctrls = talloc_realloc(req, req->controls,
+	ctrls = talloc_array(req,
 			       struct ldb_control *,
 			       n + 2);
 	if (!ctrls) return LDB_ERR_OPERATIONS_ERROR;
+
+	for (i=0; i<n; i++) {
+		ctrls[i] = req->controls[i];
+	}
+
 	req->controls = ctrls;
 	ctrls[n] = NULL;
 	ctrls[n+1] = NULL;
-- 
1.6.0.6


------=_Part_8793_988388400.1255556019351
Content-Type: text/x-patch;
	name=0004-s4-provision-fixed-invalid-creationTime-format.patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=0004-s4-provision-fixed-invalid-creationTime-format.patch



More information about the samba-technical mailing list