From: Mykola Golub Date: Wed, 19 Aug 2020 08:56:57 +0000 (+0100) Subject: os/kstore: fix collection_list ordering X-Git-Tag: v15.2.9~122^2~43^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=47c83ae96fc5eca9377ea1a83a6f6dcbe498f9af;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 77ccfe00552..2772d523310 100644 --- a/src/os/kstore/KStore.cc +++ b/src/os/kstore/KStore.cc @@ -89,10 +89,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 8b1ee7b8227..40610e86f0a 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -5058,9 +5058,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};