From: Daniel Gryniewicz Date: Tue, 8 Jun 2021 16:59:56 +0000 (-0400) Subject: RGW - Don't move attrs before setting them X-Git-Tag: v16.2.6~142^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F42320%2Fhead;p=ceph.git RGW - Don't move attrs before setting them Moving the attrs into s->bucket_attrs before setting them results in setting empty attrs into the bucket. This means that reading them back later gets empty attrs, which can cause a segfault. Signed-off-by: Daniel Gryniewicz (cherry picked from commit 4d38154f5779b01ed93430ef7405417820214796) Conflicts: src/rgw/rgw_op.cc --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 352d54e89116..2ab4d6eefe9f 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -7375,9 +7375,6 @@ void RGWSetAttrs::execute(optional_yield y) rgw::sal::RGWAttrs a(attrs); op_ret = s->object->set_obj_attrs(this, s->obj_ctx, &a, nullptr, y); } else { - for (auto& iter : attrs) { - s->bucket_attrs[iter.first] = std::move(iter.second); - } op_ret = store->ctl()->bucket->set_bucket_instance_attrs( s->bucket->get_info(), attrs, &s->bucket->get_info().objv_tracker, s->yield, this);