From 48dbfc89cf532704a0e2fedff828a0a48476053f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 10 Jun 2009 10:13:55 +1000 Subject: fixed server side sorting of case-insensitive strings The sort module uses ldb_comparison_fold() as the comparison function for case-insensitive attributes. In other places the function is being used to produce a boolean, but for sorting we care about ordering. The n1 - n2 return was sorting by length, not value --- source4/lib/ldb/common/attrib_handlers.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'source4') diff --git a/source4/lib/ldb/common/attrib_handlers.c b/source4/lib/ldb/common/attrib_handlers.c index 4869e3289c..9cb9ff886c 100644 --- a/source4/lib/ldb/common/attrib_handlers.c +++ b/source4/lib/ldb/common/attrib_handlers.c @@ -216,9 +216,6 @@ int ldb_comparison_fold(struct ldb_context *ldb, void *mem_ctx, while (*s1 == ' ') { s1++; n1--; } while (*s2 == ' ') { s2++; n2--; } } - if (n1 != n2) { - return n1 - n2; - } return (int)(toupper(*s1)) - (int)(toupper(*s2)); utf8str: -- cgit