From: Andrew Tridgell Date: Wed, 10 Jun 2009 00:13:55 +0000 (+1000) Subject: fixed server side sorting of case-insensitive strings X-Git-Tag: tdb-1.1.5~121 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48dbfc89cf532704a0e2fedff828a0a48476053f;p=thirdparty%2Fsamba.git 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 --- diff --git a/source4/lib/ldb/common/attrib_handlers.c b/source4/lib/ldb/common/attrib_handlers.c index 4869e3289c8..9cb9ff886cc 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: