]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/memstore: fix bug in BufferlistObject::write
authorSage Weil <sage@redhat.com>
Thu, 15 Sep 2016 19:48:07 +0000 (15:48 -0400)
committerSage Weil <sage@redhat.com>
Tue, 20 Sep 2016 22:35:55 +0000 (18:35 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/memstore/MemStore.cc

index 29488840f9f3aa1fb4810746f350c0cf5643a74f..2910a4986c5a513adc05aa886d9a3e5e565ac74b 100644 (file)
@@ -1496,8 +1496,10 @@ int BufferlistObject::write(uint64_t offset, const bufferlist &src)
   if (get_size() >= offset) {
     newdata.substr_of(data, 0, offset);
   } else {
-    newdata.substr_of(data, 0, get_size());
-    newdata.append(offset - get_size());
+    if (get_size()) {
+      newdata.substr_of(data, 0, get_size());
+    }
+    newdata.append_zero(offset - get_size());
   }
 
   newdata.append(src);