From: David Zafman Date: Tue, 10 Jan 2017 01:34:12 +0000 (-0800) Subject: ceph-objectstore-tool: Handle object names that are also valid json X-Git-Tag: v12.0.0~205^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1e26f4e51194e3583c09eb918dae8ad047b6c76f;p=ceph.git ceph-objectstore-tool: Handle object names that are also valid json Treat an argument that happens to be json but doesn't conform to our requirements as an object name. Signed-off-by: David Zafman --- diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index ec869fc5d439..d7d1319f6c35 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -2666,7 +2666,8 @@ int main(int argc, char **argv) } else { json_spirit::Value v; try { - if (!json_spirit::read(object, v)) { + if (!json_spirit::read(object, v) || + (v.type() != json_spirit::array_type && v.type() != json_spirit::obj_type)) { // Special: Need head/snapdir so set even if user didn't specify if (vm.count("objcmd") && (objcmd == "remove-clone-metadata")) head = true;