From: zhuo li Date: Sun, 12 Jul 2020 09:31:20 +0000 (+0800) Subject: rgwlc: fix Segmentation Fault related to tags. X-Git-Tag: v14.2.11~58^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d73a4e7839b80c2083e42fef0c66a4f74acfeacc;p=ceph.git rgwlc: fix Segmentation Fault related to tags. It is found that rgw crashes when putting a tag beyond the rule to the object, which can be solved by adding the return value judgment. Fixes: https://tracker.ceph.com/issues/46485 Signed-off-by: zhuo li Signed-off-by: yupeng chen (cherry picked from commit 5994ec12a7039f21b8f9e1077f2f721003de8cb6) Conflicts: src/rgw/rgw_lc.cc - automated cherry-pick failed due to post-nautilus refactoring: made the change manually --- diff --git a/src/rgw/rgw_lc.cc b/src/rgw/rgw_lc.cc index 438249a71b60f..9dd29627db98c 100644 --- a/src/rgw/rgw_lc.cc +++ b/src/rgw/rgw_lc.cc @@ -454,6 +454,8 @@ static inline bool has_all_tags(const lc_op& rule_action, for (const auto& tag : object_tags.get_tags()) { const auto& rule_tags = rule_action.obj_tags->get_tags(); const auto& iter = rule_tags.find(tag.first); + if(iter == rule_tags.end()) + continue; if(iter->second == tag.second) { tag_count++;