]> git.sur5r.net Git - openldap/commitdiff
Fix GE inequality lookups, key was getting overwritten
authorHoward Chu <hyc@openldap.org>
Mon, 6 Dec 2004 07:16:57 +0000 (07:16 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 6 Dec 2004 07:16:57 +0000 (07:16 +0000)
servers/slapd/back-bdb/idl.c

index 1e1453822d155ccd76540d20fcdae4c23c24ec00..74cfdc277da0dd3749d0e426fe37342e598346fb 100644 (file)
@@ -489,13 +489,15 @@ bdb_idl_fetch_key(
        }
        
        /* If this is a LE lookup, save original key so we can determine
-        * when to stop
+        * when to stop. If this is a GE lookup, save the key since it
+        * will be overwritten.
         */
-       if ( get_flag == LDAP_FILTER_LE ) {
+       if ( get_flag == LDAP_FILTER_LE || get_flag == LDAP_FILTER_GE ) {
                DBTzero( &key2 );
                key2.flags = DB_DBT_USERMEM;
                key2.ulen = sizeof(keybuf);
                key2.data = keybuf;
+               key2.size = key->size;
                AC_MEMCPY( keybuf, key->data, key->size );
                kptr = &key2;
        } else {