From: Mykola Golub Date: Wed, 19 Aug 2020 08:56:57 +0000 (+0100) Subject: os/kstore: fix collection_list ordering X-Git-Tag: v12.2.14~2^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=72afb6b474ea41daefeda6ad9d107139dcf20735;p=ceph.git os/kstore: fix collection_list ordering It has the same key escaping bug as the blustore has, but we don't need to workaround it here because kstore is not in production use. Signed-off-by: Mykola Golub (cherry picked from commit c1eff9f7812b131c10df245ae92450d70623de2b) --- diff --git a/src/os/kstore/KStore.cc b/src/os/kstore/KStore.cc index 6f8b642c664..ed7b92e2ea8 100755 --- a/src/os/kstore/KStore.cc +++ b/src/os/kstore/KStore.cc @@ -85,10 +85,10 @@ static void append_escaped(const string &in, string *out) { char hexbyte[8]; for (string::const_iterator i = in.begin(); i != in.end(); ++i) { - if (*i <= '#') { + if ((unsigned char)*i <= '#') { snprintf(hexbyte, sizeof(hexbyte), "#%02x", (uint8_t)*i); out->append(hexbyte); - } else if (*i >= '~') { + } else if ((unsigned char)*i >= '~') { snprintf(hexbyte, sizeof(hexbyte), "~%02x", (uint8_t)*i); out->append(hexbyte); } else { diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 3d8e3528444..bfa2dbc55bc 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -4611,9 +4611,6 @@ TEST_P(StoreTest, HashCollisionTest) { } TEST_P(StoreTest, HashCollisionSorting) { - if (string(GetParam()) == "kstore") // TODO: fix kstore - return; - char buf121664318_1[] = {18, -119, -121, -111, 0}; char buf121664318_2[] = {19, 127, -121, 32, 0}; char buf121664318_3[] = {19, -118, 15, 19, 0};