From fa3036168b67a191d7ac37d0d34409f5b3d87b5d Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Wed, 22 Jul 2020 13:58:00 -0400 Subject: [PATCH] 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 --- src/cls/rgw/cls_rgw.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index b05849763e3..e38bede11dc 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); } -- 2.39.5