From 980f094842e036145768fdb3361ff7d85328c3a6 Mon Sep 17 00:00:00 2001 From: Dong Yuan Date: Fri, 5 Dec 2014 19:31:35 +0000 Subject: [PATCH] common: bufferlist::get_contiguous return 0 when param len == 0 Change-Id: I3eaee45b12c634687cd1b294b3c264aed8cab03a Signed-off-by: Dong Yuan --- src/common/buffer.cc | 4 ++++ src/test/bufferlist.cc | 2 ++ 2 files changed, 6 insertions(+) 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); -- 2.47.3