From: Yehuda Sadeh Date: Wed, 5 Nov 2014 06:05:03 +0000 (-0800) Subject: rgw: RGWRados::get_obj() returns wrong len if len == 0 X-Git-Tag: v0.87.1~10^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d759e71c8167ea29c8fda9483039a3e491083da5;p=ceph.git rgw: RGWRados::get_obj() returns wrong len if len == 0 Fixes: #9877 We only updated if len was > 0, should update it if r >= 0. This was the culprit for issue #9877. Backport: giant, firefly Signed-off-by: Yehuda Sadeh (cherry picked from commit fe7bf06366adaf787816d1e68f5e3f68e8c91134) --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 1d05509d6c8b..709b8020d4da 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -4689,7 +4689,7 @@ int RGWRados::get_obj(void *ctx, RGWObjVersionTracker *objv_tracker, void **hand bl.append(read_bl); done: - if (bl.length() > 0) { + if (r >= 0) { r = bl.length(); } if (r < 0 || !len || ((off_t)(ofs + len - 1) == end)) {