From: songweibin Date: Mon, 19 Nov 2018 11:26:41 +0000 (+0800) Subject: rbd: fix error parse arg when getting image-meta key X-Git-Tag: v12.2.13~118^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4302ce062b458fd9243de76666cf684876fddf5a;p=ceph.git rbd: fix error parse arg when getting image-meta key Signed-off-by: songweibin (cherry picked from commit 3ddec748d087f6effa782c21f7730f02bd92f778) --- diff --git a/src/tools/rbd/action/ImageMeta.cc b/src/tools/rbd/action/ImageMeta.cc index 61a5c0d0734a..58000c82f15f 100644 --- a/src/tools/rbd/action/ImageMeta.cc +++ b/src/tools/rbd/action/ImageMeta.cc @@ -24,11 +24,14 @@ void add_key_option(po::options_description *positional) { ("key", "image meta key"); } -int get_key(const po::variables_map &vm, std::string *key) { - *key = utils::get_positional_argument(vm, 1); +int get_key(const po::variables_map &vm, size_t *arg_index, + std::string *key) { + *key = utils::get_positional_argument(vm, *arg_index); if (key->empty()) { std::cerr << "rbd: metadata key was not specified" << std::endl; return -EINVAL; + } else { + ++(*arg_index); } return 0; } @@ -195,7 +198,7 @@ int execute_get(const po::variables_map &vm) { } std::string key; - r = get_key(vm, &key); + r = get_key(vm, &arg_index, &key); if (r < 0) { return r; } @@ -239,7 +242,7 @@ int execute_set(const po::variables_map &vm) { } std::string key; - r = get_key(vm, &key); + r = get_key(vm, &arg_index, &key); if (r < 0) { return r; } @@ -287,7 +290,7 @@ int execute_remove(const po::variables_map &vm) { } std::string key; - r = get_key(vm, &key); + r = get_key(vm, &arg_index, &key); if (r < 0) { return r; }