]> git.sur5r.net Git - openldap/commitdiff
Fix inequality cursor management
authorHoward Chu <hyc@openldap.org>
Mon, 6 Dec 2004 21:25:16 +0000 (21:25 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 6 Dec 2004 21:25:16 +0000 (21:25 +0000)
servers/slapd/back-bdb/idl.c

index f190b5ef44c93210259a1441b69f8a4e345b6618..7fcc6a0abbbdfb3ecd2e2c7d40bf8b613b39d7ab 100644 (file)
@@ -478,14 +478,15 @@ bdb_idl_fetch_key(
        if ( tid ) flags |= DB_RMW;
 
        /* If we're not reusing an existing cursor, get a new one */
-       if( opflag != DB_NEXT )
+       if( opflag != DB_NEXT ) {
                rc = db->cursor( db, tid, &cursor, bdb->bi_db_opflags );
-       else
+               if( rc != 0 ) {
+                       Debug( LDAP_DEBUG_ANY, "=> bdb_idl_fetch_key: "
+                               "cursor failed: %s (%d)\n", db_strerror(rc), rc, 0 );
+                       return rc;
+               }
+       } else {
                cursor = *saved_cursor;
-       if( rc != 0 ) {
-               Debug( LDAP_DEBUG_ANY, "=> bdb_idl_fetch_key: "
-                       "cursor failed: %s (%d)\n", db_strerror(rc), rc, 0 );
-               return rc;
        }
        
        /* If this is a LE lookup, save original key so we can determine