From: Jason Dillaman Date: Thu, 14 Apr 2016 17:30:14 +0000 (-0400) Subject: rbd: fail if cannot extract spec from legacy "--image" optional X-Git-Tag: v10.2.0~31^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=08c8cee2dbd4b1dccb03a01788d8f1a31517db90;p=ceph.git rbd: fail if cannot extract spec from legacy "--image" optional Signed-off-by: Jason Dillaman --- diff --git a/src/tools/rbd/Utils.cc b/src/tools/rbd/Utils.cc index f4441ddee97e..f06e85773f08 100644 --- a/src/tools/rbd/Utils.cc +++ b/src/tools/rbd/Utils.cc @@ -182,15 +182,18 @@ int get_pool_image_snapshot_names(const po::variables_map &vm, *snap_name = vm[snap_key].as(); } + int r; if (image_name != nullptr && !image_name->empty()) { // despite the separate pool and snapshot name options, // we can also specify them via the image option std::string image_name_copy(*image_name); - extract_spec(image_name_copy, pool_name, image_name, snap_name, - spec_validation); + r = extract_spec(image_name_copy, pool_name, image_name, snap_name, + spec_validation); + if (r < 0) { + return r; + } } - int r; if (image_name != nullptr && spec_arg_index != nullptr && image_name->empty()) { std::string spec = get_positional_argument(vm, (*spec_arg_index)++); @@ -247,23 +250,29 @@ int get_pool_journal_names(const po::variables_map &vm, image_name = vm[image_key].as(); } + int r; if (journal_name != nullptr && !journal_name->empty()) { // despite the separate pool option, // we can also specify them via the journal option std::string journal_name_copy(*journal_name); - extract_spec(journal_name_copy, pool_name, journal_name, nullptr, - SPEC_VALIDATION_FULL); + r = extract_spec(journal_name_copy, pool_name, journal_name, nullptr, + SPEC_VALIDATION_FULL); + if (r < 0) { + return r; + } } if (!image_name.empty()) { // despite the separate pool option, // we can also specify them via the image option std::string image_name_copy(image_name); - extract_spec(image_name_copy, pool_name, &image_name, nullptr, - SPEC_VALIDATION_NONE); + r = extract_spec(image_name_copy, pool_name, &image_name, nullptr, + SPEC_VALIDATION_NONE); + if (r < 0) { + return r; + } } - int r; if (journal_name != nullptr && spec_arg_index != nullptr && journal_name->empty()) { std::string spec = get_positional_argument(vm, (*spec_arg_index)++);