]> git.sur5r.net Git - openldap/commitdiff
Fix conversion of IDL to range
authorHoward Chu <hyc@openldap.org>
Sat, 3 Sep 2011 20:09:19 +0000 (13:09 -0700)
committerHoward Chu <hyc@openldap.org>
Sat, 3 Sep 2011 20:09:19 +0000 (13:09 -0700)
servers/slapd/back-mdb/idl.c

index cc181235a224055b9deb60585db709483f366d8b..53d130b70569b417caf78f2111a46a64d09a367b 100644 (file)
@@ -445,14 +445,15 @@ mdb_idl_insert_key(
                                        err = "c_get next_nodup";
                                        goto fail;
                                }
+                               key2 = *key;
                                if ( rc == MDB_NOTFOUND ) {
-                                       rc = mdb_cursor_get( cursor, key, &data, MDB_LAST );
+                                       rc = mdb_cursor_get( cursor, &key2, &data, MDB_LAST );
                                        if ( rc != 0 ) {
                                                err = "c_get last";
                                                goto fail;
                                        }
                                } else {
-                                       rc = mdb_cursor_get( cursor, key, &data, MDB_PREV );
+                                       rc = mdb_cursor_get( cursor, &key2, &data, MDB_PREV );
                                        if ( rc != 0 ) {
                                                err = "c_get prev";
                                                goto fail;
@@ -467,7 +468,7 @@ mdb_idl_insert_key(
                                        hi = id;
                                }
                                /* delete the old key */
-                               rc = mdb_del( txn, dbi, key, NULL );
+                               rc = mdb_del( txn, dbi, &key2, NULL );
                                if ( rc != 0 ) {
                                        err = "mdb_del";
                                        goto fail;