From ac62d7996b95d8fdd5665e490fc09506c8fe9e68 Mon Sep 17 00:00:00 2001 From: weiqiaomiao Date: Mon, 31 Oct 2016 13:59:55 +0800 Subject: [PATCH] rgw: fix osd crashes when execute "radosgw-admin bi list --max-entries=1" command Fixes: http://tracker.ceph.com/issues/17745 Signed-off-by: weiqiaomiao (cherry picked from commit 51a4405a1ef59671cbd51c530a84333359d3f3dd) --- src/cls/rgw/cls_rgw.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index b4d09da587e44..9e9f45fdb40da 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -2375,9 +2375,9 @@ static int rgw_bi_list_op(cls_method_context_t hctx, bufferlist *in, bufferlist string filter = op.name; #define MAX_BI_LIST_ENTRIES 1000 - int32_t max = (op.max < MAX_BI_LIST_ENTRIES ? op.max : MAX_BI_LIST_ENTRIES); + int32_t max = (op.max < MAX_BI_LIST_ENTRIES ? op.max : MAX_BI_LIST_ENTRIES) + 1; /* one extra entry for identifying truncation */ string start_key = op.marker; - int ret = list_plain_entries(hctx, op.name, op.marker, max, &op_ret.entries) + 1; /* one extra entry for identifying truncation */ + int ret = list_plain_entries(hctx, op.name, op.marker, max, &op_ret.entries); if (ret < 0) { CLS_LOG(0, "ERROR: %s(): list_plain_entries retured ret=%d", __func__, ret); return ret; -- 2.39.5