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: v15.2.5~56^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7a7d6642cbfe2f856bebec283d9c9e50ab76c420;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 (cherry picked from commit fa3036168b67a191d7ac37d0d34409f5b3d87b5d) --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index bd08ed0c72d..ae3381d5033 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -3771,13 +3771,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); }