From: Matt Benjamin Date: Wed, 22 Jul 2020 17:58:00 +0000 (-0400) Subject: rgwlc: fix error return from backward-compat decode X-Git-Tag: v16.1.0~1508^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fa3036168b67a191d7ac37d0d34409f5b3d87b5d;p=ceph.git rgwlc: fix error return from backward-compat decode Exception handling in backward-compat case returned EIO even when the actual backward-compat decode succeeded. Fixes: https://tracker.ceph.com/issues/46677 Signed-off-by: Matt Benjamin --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index b05849763e31..e38bede11dc5 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -3775,13 +3775,14 @@ static int rgw_cls_lc_list_entries(cls_method_context_t hctx, bufferlist *in, /* try backward compat */ pair oe; try { + iter = it->second.begin(); decode(oe, iter); entry = {oe.first, 0 /* start */, uint32_t(oe.second)}; } catch(buffer::error& err) { CLS_LOG( 1, "ERROR: rgw_cls_lc_list_entries(): failed to decode entry\n"); + return -EIO; } - return -EIO; } op_ret.entries.push_back(entry); }