]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: avoid nullptr in bluestore_extent_ref_map_t::bound_encode 14073/head
authorSage Weil <sage@redhat.com>
Thu, 23 Mar 2017 13:21:39 +0000 (08:21 -0500)
committerSage Weil <sage@redhat.com>
Thu, 23 Mar 2017 13:21:39 +0000 (08:21 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/bluestore_types.h

index 57f60afd1f99644b5593b245b81dfab446c84d0c..ec0967d296fe4d8812e7b88f1ce9f7d2c5830adc 100644 (file)
@@ -224,10 +224,12 @@ struct bluestore_extent_ref_map_t {
 
   void bound_encode(size_t& p) const {
     denc_varint((uint32_t)0, p);
-    size_t elem_size = 0;
-    denc_varint_lowz((uint32_t)0, p);
-    ((const record_t*)nullptr)->bound_encode(elem_size);
-    p += elem_size * ref_map.size();
+    if (!ref_map.empty()) {
+      size_t elem_size = 0;
+      denc_varint_lowz((uint64_t)0, elem_size);
+      ref_map.begin()->second.bound_encode(elem_size);
+      p += elem_size * ref_map.size();
+    }
   }
   void encode(bufferlist::contiguous_appender& p) const {
     uint32_t n = ref_map.size();