From: Igor Fedotov Date: Thu, 2 Jun 2016 09:14:22 +0000 (+0300) Subject: common/bufferlist: Fixes lack of offset increment in get_ptr_and_advance X-Git-Tag: v11.0.0~346^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=613a2a8280ecaeffee8933ca7297f3a75cbda710;p=ceph.git common/bufferlist: Fixes lack of offset increment in get_ptr_and_advance Signed-off-by: Igor Fedotov --- diff --git a/src/common/buffer.cc b/src/common/buffer.cc index 191b57869594..7f725094da60 100644 --- a/src/common/buffer.cc +++ b/src/common/buffer.cc @@ -1215,6 +1215,7 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER; ++p; p_off = 0; } + off += l; return l; } diff --git a/src/test/bufferlist.cc b/src/test/bufferlist.cc index 0f1696f46b5b..e98a6dc2d87e 100644 --- a/src/test/bufferlist.cc +++ b/src/test/bufferlist.cc @@ -1049,6 +1049,7 @@ TEST(BufferListIterator, get_ptr_and_advance) const char *ptr; bufferlist::iterator p = bl.begin(); ASSERT_EQ(3u, p.get_ptr_and_advance(11, &ptr)); + ASSERT_EQ(bl.length() - 3u, p.get_remaining()); ASSERT_EQ(0, memcmp(ptr, "one", 3)); ASSERT_EQ(2u, p.get_ptr_and_advance(2, &ptr)); ASSERT_EQ(0, memcmp(ptr, "tw", 2)); @@ -1056,6 +1057,7 @@ TEST(BufferListIterator, get_ptr_and_advance) ASSERT_EQ(0, memcmp(ptr, "o", 1)); ASSERT_EQ(5u, p.get_ptr_and_advance(5, &ptr)); ASSERT_EQ(0, memcmp(ptr, "three", 5)); + ASSERT_EQ(0u, p.get_remaining()); } TEST(BufferListIterator, seek) {