]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common: bufferlist::get_contiguous return 0 when param len == 0 3094/head
authorDong Yuan <yuandong1222@gmail.com>
Fri, 5 Dec 2014 19:31:35 +0000 (19:31 +0000)
committerDong Yuan <yuandong1222@gmail.com>
Fri, 5 Dec 2014 19:48:59 +0000 (19:48 +0000)
Change-Id: I3eaee45b12c634687cd1b294b3c264aed8cab03a
Signed-off-by: Dong Yuan <yuandong1222@gmail.com>
src/common/buffer.cc
src/test/bufferlist.cc

index c966b5cf9bcfab22e0aeea5b2d6f461d77f89dd7..9ecc8fd5ebfa53e37f1d01e52c27f7839450dd4b 100644 (file)
@@ -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<ptr>::iterator curbuf = _buffers.begin();
     while (off > 0 && off >= curbuf->length()) {
index c1ff85ed115e0a1fa465f9f0bd71d9c23ca5746c..73c03c5bd531295227c3d9273cc9394926dfafb1 100644 (file)
@@ -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);