From b2fa8d4f2bb873971eaaa32474f1b12f9a654cae Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 4 May 2022 16:19:01 -0400 Subject: [PATCH] radosgw-admin: don't crash on --placement-id without --storage-class if --storage-class is omitted, avoid dereferencing an empty optional Fixes: https://tracker.ceph.com/issues/55548 Signed-off-by: Casey Bodley (cherry picked from commit 91931a38ce280132e270c80822f3f3b2cc0a3bf9) Conflicts: - path: src/rgw/rgw_admin.cc comment: resolve minor conflict --- src/rgw/rgw_admin.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 9fd01ecc61381..fd9812f3cd04b 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -6159,11 +6159,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->get_zone()->get_params().valid_placement(target_rule)) { cerr << "NOTICE: invalid dest placement: " << target_rule.to_str() << std::endl; return EINVAL; -- 2.39.5