From: Sage Weil Date: Thu, 23 Mar 2017 13:21:39 +0000 (-0500) Subject: os/bluestore: avoid nullptr in bluestore_extent_ref_map_t::bound_encode X-Git-Tag: v12.0.2~330^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F14073%2Fhead;p=ceph.git os/bluestore: avoid nullptr in bluestore_extent_ref_map_t::bound_encode Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/bluestore_types.h b/src/os/bluestore/bluestore_types.h index 57f60afd1f9..ec0967d296f 100644 --- a/src/os/bluestore/bluestore_types.h +++ b/src/os/bluestore/bluestore_types.h @@ -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();