]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgwlc: fix Segmentation Fault related to tags. 36086/head
authorzhuo li <lizhuo@chinatelecom.cn>
Sun, 12 Jul 2020 09:31:20 +0000 (17:31 +0800)
committerNathan Cutler <ncutler@suse.com>
Tue, 14 Jul 2020 03:49:31 +0000 (05:49 +0200)
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 <lizhuo@chinatelecom.cn>
Signed-off-by: yupeng chen <chenyupeng@chinatelecom.cn>
(cherry picked from commit 5994ec12a7039f21b8f9e1077f2f721003de8cb6)

Conflicts:
src/rgw/rgw_lc.cc
- automated cherry-pick failed due to post-nautilus refactoring:
  made the change manually

src/rgw/rgw_lc.cc

index 438249a71b60fea98537ac4ca4bf09d6419f6931..9dd29627db98ce84f6615d5642139ce69f755729 100644 (file)
@@ -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++;