]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/common/buffer.cc
import ceph 16.2.6
[ceph.git] / ceph / src / common / buffer.cc
index 406ca24a4a63c482f2a49095505f68c617fda514..31154c96fc7a616a356e8a2fa631fbc843d8f3f3 100644 (file)
@@ -1254,8 +1254,12 @@ static ceph::spinlock debug_lock;
             buffer::create_aligned(unaligned._len, align_memory)));
         had_to_rebuild = true;
       }
-      _buffers.insert_after(p_prev, *ptr_node::create(unaligned._buffers.front()).release());
-      _num += 1;
+      if (unaligned.get_num_buffers()) {
+        _buffers.insert_after(p_prev, *ptr_node::create(unaligned._buffers.front()).release());
+        _num += 1;
+      } else {
+        // a bufferlist containing only 0-length bptrs is rebuilt as empty
+      }
       ++p_prev;
     }
     return had_to_rebuild;