]> git.sur5r.net Git - openldap/commitdiff
Fix idl_firstid to return NOID when !(nids > 1) instead of when (nids == 1)
authorKurt Zeilenga <kurt@openldap.org>
Tue, 2 Feb 1999 02:46:18 +0000 (02:46 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 2 Feb 1999 02:46:18 +0000 (02:46 +0000)
Fix idl_nextid not to skip an ID if ID not in list.
Both of these should not occur if used correctly, but cheap insurance
against incorrect usage is welcomed.

servers/slapd/back-ldbm/idl.c

index 7df466cb253a77c5c551d488a8fe74b703378fc0..10a03ddc1432fa9e8cd684632234b6efeda4fd66 100644 (file)
@@ -932,7 +932,7 @@ idl_firstid( ID_BLOCK *idl )
        }
 
        if ( ID_BLOCK_ALLIDS( idl ) ) {
-               return( ID_BLOCK_NIDS(idl) == 1 ? NOID : 1 );
+               return( ID_BLOCK_NIDS(idl) > 1 ? 1 : NOID );
        }
 
        return( ID_BLOCK_ID(idl, 0) );
@@ -947,10 +947,9 @@ idl_nextid( ID_BLOCK *idl, ID id )
                return( ++id < ID_BLOCK_NIDS(idl) ? id : NOID );
        }
 
-       for ( i = 0; i < ID_BLOCK_NIDS(idl) && ID_BLOCK_ID(idl, i) < id; i++ ) {
+       for ( i = 0; i < ID_BLOCK_NIDS(idl) && ID_BLOCK_ID(idl, i) <= id; i++ ) {
                ;       /* NULL */
        }
-       i++;
 
        if ( i >= ID_BLOCK_NIDS(idl) ) {
                return( NOID );