]> git.sur5r.net Git - openldap/commitdiff
ITS#6715 cleanup: Handle attr_valfind(0 values) when SLAP_ATTR_SORTED_VALS
authorHallvard Furuseth <hallvard@openldap.org>
Mon, 22 Nov 2010 12:16:08 +0000 (12:16 +0000)
committerHallvard Furuseth <hallvard@openldap.org>
Mon, 22 Nov 2010 12:16:08 +0000 (12:16 +0000)
servers/slapd/attr.c

index 4fcb7dc42f5a5452f5087ed2993cd4c6bfcf1686..4472d7c6ff40e8c758a47f836dcfe2976df74192 100644 (file)
@@ -317,11 +317,11 @@ attr_valfind(
        }
 
        n = a->a_numvals;
-       if ( a->a_flags & SLAP_ATTR_SORTED_VALS ) {
+       if ( (a->a_flags & SLAP_ATTR_SORTED_VALS) && n ) {
                /* Binary search */
                unsigned base = 0;
 
-               while ( 0 < n ) {
+               do {
                        unsigned pivot = n >> 1;
                        i = base + pivot;
                        rc = value_match( &match, a->a_desc, mr, flags,
@@ -334,7 +334,7 @@ attr_valfind(
                        } else {
                                n = pivot;
                        }
-               }
+               } while ( n );
                if ( match < 0 )
                        i++;
        } else {