From 753af36a3e194f645ec0b68a033199035e71c909 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 29 Oct 2008 08:34:05 -0400 Subject: Length comparison of the linearized version is not correct. The linearized version is not casefolded so length might not match and yet the strings be equivalent. This can happen if one component is case-insensitive and a letter that have an uppercase version of a multibyte character that differ in legth from the corresponding lowercase one. --- source4/lib/ldb/common/ldb_dn.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'source4/lib') diff --git a/source4/lib/ldb/common/ldb_dn.c b/source4/lib/ldb/common/ldb_dn.c index e36aea4e69..5e6fb96457 100644 --- a/source4/lib/ldb/common/ldb_dn.c +++ b/source4/lib/ldb/common/ldb_dn.c @@ -749,9 +749,6 @@ int ldb_dn_compare_base(struct ldb_dn *base, struct ldb_dn *dn) if (base->linearized && dn->linearized) { /* try with a normal compare first, if we are lucky * we will avoid exploding and casfolding */ - int dif; - dif = strlen(dn->linearized) - strlen(base->linearized); - if (dif < 0) return dif; if (strcmp(base->linearized, &dn->linearized[dif]) == 0) return 0; } -- cgit