summaryrefslogtreecommitdiff
path: root/source4/lib
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2006-01-10 14:21:24 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:50:03 -0500
commit428ef08930e06de31919b75ff12b9147aada8a10 (patch)
tree98eae4a0f00beddf28f49d92b2d3c1740deff221 /source4/lib
parenta6a007d0c421f31f2cdb7f27f1db342f1573db50 (diff)
downloadsamba-428ef08930e06de31919b75ff12b9147aada8a10.tar.gz
samba-428ef08930e06de31919b75ff12b9147aada8a10.tar.bz2
samba-428ef08930e06de31919b75ff12b9147aada8a10.zip
r12827: This was a very well concealed bug.
Thank to Andrew Bartlet for finding out a test case that showed it up. Simo. (This used to be commit 72a86d74a95c2b38d25159027f612075c50a1f3c)
Diffstat (limited to 'source4/lib')
-rw-r--r--source4/lib/ldb/common/attrib_handlers.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source4/lib/ldb/common/attrib_handlers.c b/source4/lib/ldb/common/attrib_handlers.c
index 4b9d349672..4826ead946 100644
--- a/source4/lib/ldb/common/attrib_handlers.c
+++ b/source4/lib/ldb/common/attrib_handlers.c
@@ -136,8 +136,15 @@ static int ldb_comparison_fold(struct ldb_context *ldb, void *mem_ctx,
}
s1++; s2++;
}
- while (*s1 == ' ') s1++;
- while (*s2 == ' ') s2++;
+ if (! (*s1 && *s2)) {
+ /* remove trailing spaces only if one of the pointers
+ * has reached the end of the strings otherwise we
+ * can mistakenly match.
+ * ex. "domain users" <-> "domainUpdates"
+ */
+ while (*s1 == ' ') s1++;
+ while (*s2 == ' ') s2++;
+ }
return (int)(toupper(*s1)) - (int)(toupper(*s2));
}