svn commit: samba r19905 - in branches/SAMBA_4_0/source/lib/ldb/ldb_tdb: .

idra at samba.org idra at samba.org
Sun Nov 26 03:59:01 GMT 2006


Author: idra
Date: 2006-11-26 03:59:01 +0000 (Sun, 26 Nov 2006)
New Revision: 19905

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19905

Log:

use ldb_dn_new_fmt() to avoid double strdups


Modified:
   branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_index.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_index.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_index.c	2006-11-25 19:28:09 UTC (rev 19904)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_index.c	2006-11-26 03:59:01 UTC (rev 19905)
@@ -107,7 +107,6 @@
 				     const char *attr, const struct ldb_val *value)
 {
 	struct ldb_dn *ret;
-	char *dn;
 	struct ldb_val v;
 	const struct ldb_attrib_handler *h;
 	char *attr_folded;
@@ -128,27 +127,17 @@
 	if (ldb_should_b64_encode(&v)) {
 		char *vstr = ldb_base64_encode(ldb, (char *)v.data, v.length);
 		if (!vstr) return NULL;
-		dn = talloc_asprintf(ldb, "%s:%s::%s", LTDB_INDEX, attr_folded, vstr);
+		ret = ldb_dn_new_fmt(ldb, ldb, "%s:%s::%s", LTDB_INDEX, attr_folded, vstr);
 		talloc_free(vstr);
-		if (v.data != value->data) {
-			talloc_free(v.data);
-		}
-		talloc_free(attr_folded);
-		if (dn == NULL) return NULL;
-		goto done;
+	} else {
+		ret = ldb_dn_new_fmt(ldb, ldb, "%s:%s:%.*s", LTDB_INDEX, attr_folded, (int)v.length, (char *)v.data);
 	}
 
-	dn = talloc_asprintf(ldb, "%s:%s:%.*s", 
-			      LTDB_INDEX, attr_folded, (int)v.length, (char *)v.data);
-
 	if (v.data != value->data) {
 		talloc_free(v.data);
 	}
 	talloc_free(attr_folded);
 
-done:
-	ret = ldb_dn_new(ldb, ldb, dn);
-	talloc_free(dn);
 	return ret;
 }
 



More information about the samba-cvs mailing list