]> git.sur5r.net Git - openldap/commitdiff
ITS#5578
authorQuanah Gibson-Mount <quanah@openldap.org>
Thu, 10 Jul 2008 02:17:13 +0000 (02:17 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 10 Jul 2008 02:17:13 +0000 (02:17 +0000)
CHANGES
servers/slapd/attr.c

diff --git a/CHANGES b/CHANGES
index 917a2d48522bcb75d12360ebaa9cb10fb7c40c05..e4ba6f9f6300c371ff3eec8d59954cc3af27c6f3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -12,6 +12,7 @@ OpenLDAP 2.4.11 Engineering
        Fixed slapd crash with no listeners (ITS#5563)
        Fixed slapd equality rules for olcRootDN/olcSchemaDN (ITS#5540)
        Fixed slapd sets memory leak (ITS#5557)
+       Fixed slapd sortvals binary search (ITS#5578)
        Fixed slapd/slapo-syncprov syncrepl contextCSN updates as internal ops (ITS#5596)
        Fixed slapd-meta link to slapd-ldap (ITS#5355)
        Fixed slapd-sock, back-shell buffer count (ITS#5558)
index e54ed671be4c0f7b8f3d300c4bbeb59fc50568d2..8204fa7be860406b9f16cc9505a7dff3506b9eb1 100644 (file)
@@ -324,17 +324,16 @@ attr_valfind(
                while ( 0 < n ) {
                        unsigned pivot = n >> 1;
                        i = base + pivot;
-                       if ( i >= a->a_numvals ) {
-                               i = a->a_numvals - 1;
-                               break;
-                       }
                        rc = value_match( &match, a->a_desc, mr, flags,
                                &a->a_nvals[i], cval, &text );
                        if ( rc == LDAP_SUCCESS && match == 0 )
                                break;
-                       n = pivot;
-                       if ( match < 0 )
+                       if ( match < 0 ) {
                                base = i+1;
+                               n -= pivot+1;
+                       } else {
+                               n = pivot;
+                       }
                }
                if ( match < 0 )
                        i++;