]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/bufferlist: Fixes lack of offset increment in get_ptr_and_advance
authorIgor Fedotov <ifedotov@mirantis.com>
Thu, 2 Jun 2016 09:14:22 +0000 (12:14 +0300)
committerIgor Fedotov <ifedotov@mirantis.com>
Thu, 2 Jun 2016 09:14:22 +0000 (12:14 +0300)
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
src/common/buffer.cc
src/test/bufferlist.cc

index 191b57869594036e3ebb049b00042e3582d2798f..7f725094da60532d216a7aa8894e63e5ca924374 100644 (file)
@@ -1215,6 +1215,7 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
       ++p;
       p_off = 0;
     }
+    off += l;
     return l;
   }
 
index 0f1696f46b5bf386bcec26bbf9756f229f3905aa..e98a6dc2d87e82940a8b270b4cec7422e6981702 100644 (file)
@@ -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) {