- value->length = ptr->pointer.leaf.length;
- value->value = page->page.data + ptr->pointer.leaf.offset;
+ key->length = ( db->keylen ) ? db->keylen : ptr->key.varlen.length;
+ key->value = tmalloc( key->length );
+ memcpy( key->value, ( db->keylen ) ? ptr->key.fixed.key : page->page.data + ptr->key.varlen.offset, key->length );
+
+ value->length = ptr->pointer.leaf.length;
+ value->value = tmalloc( value->length );
+ memcpy( value->value, page->page.data + ptr->pointer.leaf.offset, value->length );