svn commit: samba r19885 - in branches/SAMBA_4_0/source/lib/ldb/common: .

metze at samba.org metze at samba.org
Sat Nov 25 14:59:59 GMT 2006


Author: metze
Date: 2006-11-25 14:59:59 +0000 (Sat, 25 Nov 2006)
New Revision: 19885

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

Log:
special dn's were not casefolded before rev 19831,
act like this again...

also when we already have a casefoled value we should not call ldb_dn_casefold_internal()

metze
Modified:
   branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c	2006-11-25 14:49:17 UTC (rev 19884)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c	2006-11-25 14:59:59 UTC (rev 19885)
@@ -628,24 +628,22 @@
 	int i, len;
 	char *d, *n;
 
+	if (dn->casefold) return dn->casefold;
+
+	if (dn->special) {
+		dn->casefold = talloc_strdup(dn, dn->linearized);
+		if (!dn->casefold) return NULL;
+		dn->valid_case = true;
+		return dn->casefold;
+	}
+
 	if ( ! ldb_dn_casefold_internal(dn)) {
 		return NULL;
 	}
 
-	if (dn->casefold) return dn->casefold;
-
 	if (dn->comp_num == 0) {
-		if (dn->special) {
-			len = strlen(dn->linearized);
-			dn->casefold = talloc_array(dn, char, len * 3 + 1);
-			if ( ! dn->casefold) return NULL;
-			ldb_dn_escape_internal(dn->casefold, dn->linearized, len);
-			/* don't waste more memory than necessary */
-			dn->casefold = talloc_realloc(dn, dn->casefold, char, strlen(dn->casefold) + 1);
-		} else {
-			dn->casefold = talloc_strdup(dn, "");
-			if ( ! dn->casefold) return NULL;
-		}
+		dn->casefold = talloc_strdup(dn, "");
+		if (!dn->casefold) return NULL;
 		dn->valid_case = true;
 		return dn->casefold;
 	}



More information about the samba-cvs mailing list