From: Dong Yuan Date: Fri, 5 Dec 2014 19:31:35 +0000 (+0000) Subject: common: bufferlist::get_contiguous return 0 when param len == 0 X-Git-Tag: v0.92~32^2~11^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F3094%2Fhead;p=ceph.git common: bufferlist::get_contiguous return 0 when param len == 0 Change-Id: I3eaee45b12c634687cd1b294b3c264aed8cab03a Signed-off-by: Dong Yuan --- diff --git a/src/common/buffer.cc b/src/common/buffer.cc index c966b5cf9bcfa..9ecc8fd5ebfa5 100644 --- a/src/common/buffer.cc +++ b/src/common/buffer.cc @@ -1367,6 +1367,10 @@ void buffer::list::rebuild_page_aligned() if (orig_off + len > length()) throw end_of_buffer(); + if (len == 0) { + return 0; + } + unsigned off = orig_off; std::list::iterator curbuf = _buffers.begin(); while (off > 0 && off >= curbuf->length()) { diff --git a/src/test/bufferlist.cc b/src/test/bufferlist.cc index c1ff85ed115e0..73c03c5bd5312 100644 --- a/src/test/bufferlist.cc +++ b/src/test/bufferlist.cc @@ -1081,6 +1081,8 @@ TEST(BufferList, get_contiguous) { bufferptr b("123456789", 9); bufferptr c("ABCDEFGHI", 9); bufferlist bl; + ASSERT_EQ(0, bl.get_contiguous(0, 0)); + bl.append(a); bl.append(b); bl.append(c);