]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
KeyValueStore: Fix the prefix comparion to avoid object leaks. 4693/head
authorVarada Kari <varada.kari@sandisk.com>
Fri, 15 May 2015 14:16:26 +0000 (19:46 +0530)
committerVarada Kari <varada.kari@sandisk.com>
Fri, 15 May 2015 14:16:26 +0000 (19:46 +0530)
Iterator becomes invalid due to a partial prefix comparision in
rmkeys_by_prefix, resulting in not deleting the objects from backend.
Modified the comparision to the given prefix.

Signed-off-by: Varada Kari <varada.kari@sandisk.com>
src/os/KeyValueDB.h

index d1698c0382cc8a6688720dffe9568aab74459e7d..6568df8968924590e67562cd583c49de000591be 100644 (file)
@@ -130,7 +130,7 @@ public:
       if (!generic_iter->valid())
        return false;
       pair<string,string> raw_key = generic_iter->raw_key();
-      return (raw_key.first == prefix);
+      return (raw_key.first.compare(0, prefix.length(), prefix) == 0);
     }
     int next() {
       if (valid())