]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
radosgw-admin: don't crash on --placement-id without --storage-class
authorCasey Bodley <cbodley@redhat.com>
Wed, 4 May 2022 20:19:01 +0000 (16:19 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 4 May 2022 21:05:12 +0000 (17:05 -0400)
if --storage-class is omitted, avoid dereferencing an empty optional

Fixes: https://tracker.ceph.com/issues/55548
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_admin.cc

index 8b87ab0b6ceaed5efe3a5326f6ace9df4440d047..76efc2e116ebc6b5240bdb431be59972191d8576 100644 (file)
@@ -6169,11 +6169,10 @@ int main(int argc, const char **argv)
   else if (opt_cmd == OPT::USER_SUSPEND)
     user_op.set_suspension(true);
 
-  if (!placement_id.empty() ||
-      (opt_storage_class && !opt_storage_class->empty())) {
+  if (!placement_id.empty()) {
     rgw_placement_rule target_rule;
     target_rule.name = placement_id;
-    target_rule.storage_class = *opt_storage_class;
+    target_rule.storage_class = opt_storage_class.value_or("");
     if (!store->valid_placement(target_rule)) {
       cerr << "NOTICE: invalid dest placement: " << target_rule.to_str() << std::endl;
       return EINVAL;