From 9689fe0ae0cbb065debc0e461e97719478985fee Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 9 Nov 2015 13:40:41 -0500 Subject: [PATCH] kv: fix string ctor usage When constructing a string from a char* there is only a single length argument, no offset. The 3 argument variant we were using was converting to a std::string first (an prematurely terminating on \0). Signed-off-by: Sage Weil --- src/kv/KineticStore.cc | 4 ++-- src/kv/LevelDBStore.cc | 7 +++---- src/kv/RocksDBStore.cc | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/kv/KineticStore.cc b/src/kv/KineticStore.cc index b79ab37314bed..d11975b4aeabb 100644 --- a/src/kv/KineticStore.cc +++ b/src/kv/KineticStore.cc @@ -218,9 +218,9 @@ int KineticStore::split_key(string in_prefix, string *prefix, string *key) // Fetch prefix and/or key directly from Slice if (prefix) - *prefix = string(in_data, 0, prefix_len); + *prefix = string(in_data, prefix_len); if (key) - *key = string(separator+1, 0, in_prefix.size()-prefix_len-1); + *key = string(separator+1, in_prefix.size()-prefix_len-1); return 0; } diff --git a/src/kv/LevelDBStore.cc b/src/kv/LevelDBStore.cc index 90fd8ed36a4ca..2db6dc94ed740 100644 --- a/src/kv/LevelDBStore.cc +++ b/src/kv/LevelDBStore.cc @@ -275,12 +275,11 @@ int LevelDBStore::split_key(leveldb::Slice in, string *prefix, string *key) if (prefix_len >= in.size()) return -EINVAL; - // Fetch prefix and/or key directly from Slice if (prefix) - *prefix = string(in.data(), 0, prefix_len); + *prefix = string(in.data(), prefix_len); if (key) - *key = string(separator+1, 0, in.size()-prefix_len-1); - return 0; + *key = string(separator+1, in.size() - prefix_len - 1); + return 0; } void LevelDBStore::compact() diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index e7d41f3a9aa81..6dfde87a8900e 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -342,9 +342,9 @@ int RocksDBStore::split_key(rocksdb::Slice in, string *prefix, string *key) // Fetch prefix and/or key directly from Slice if (prefix) - *prefix = string(in.data(), 0, prefix_len); + *prefix = string(in.data(), prefix_len); if (key) - *key = string(separator+1, 0, in.size()-prefix_len-1); + *key = string(separator+1, in.size()-prefix_len-1); return 0; } -- 2.39.5