From: Piotr Dałek Date: Thu, 24 Dec 2015 14:51:14 +0000 (+0100) Subject: MonitorDBStore, LevelDBStore, RocksDBStore: make sure the provided bl is empty X-Git-Tag: v10.0.3~127^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9b686c334fef31648217c61f7394c075a7d3309a;p=ceph.git MonitorDBStore, LevelDBStore, RocksDBStore: make sure the provided bl is empty If it's not, data will be appended to the end of bufferlist and difficult to spot bugs might arise, so fail hard in that case. Signed-off-by: Piotr Dałek --- diff --git a/src/kv/LevelDBStore.cc b/src/kv/LevelDBStore.cc index 0056c4aa13c9..9c325b18ebe9 100644 --- a/src/kv/LevelDBStore.cc +++ b/src/kv/LevelDBStore.cc @@ -267,6 +267,7 @@ int LevelDBStore::get(const string &prefix, const string &key, bufferlist *value) { + assert(value && (value->length() == 0)); utime_t start = ceph_clock_now(g_ceph_context); int r = 0; KeyValueDB::Iterator it = get_iterator(prefix); diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index b4b925315345..9aad45282ea4 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -366,6 +366,7 @@ int RocksDBStore::get( const string &key, bufferlist *out) { + assert(out && (out->length() == 0)); utime_t start = ceph_clock_now(g_ceph_context); int r = 0; KeyValueDB::Iterator it = get_iterator(prefix); diff --git a/src/mon/MonitorDBStore.h b/src/mon/MonitorDBStore.h index 6bb35e4e11e8..6e9038e36850 100644 --- a/src/mon/MonitorDBStore.h +++ b/src/mon/MonitorDBStore.h @@ -507,6 +507,7 @@ class MonitorDBStore } int get(const string& prefix, const string& key, bufferlist& bl) { + assert(bl.length() == 0); return db->get(prefix, key, &bl); }