From: Sage Weil Date: Tue, 4 Oct 2016 16:52:27 +0000 (-0400) Subject: os/bluestore: fix crash in decode_some() X-Git-Tag: v11.0.1~23^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F11312%2Fhead;p=ceph.git os/bluestore: fix crash in decode_some() shared_blob must be non-null when we call Extent::assign_blob(). Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 7c48cdc5d8f0..1e963e3e5237 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -1726,10 +1726,11 @@ void BlueStore::ExtentMap::decode_some(bufferlist& bl) le->assign_blob(blobs[blobid - 1]); assert(le->blob); } else { - le->assign_blob(new Blob()); - le->blob->decode(p); - blobs[n] = le->blob; - onode->c->open_shared_blob(le->blob); + Blob *b = new Blob(); + b->decode(p); + blobs[n] = b; + onode->c->open_shared_blob(b); + le->assign_blob(b); } // we build ref_map dynamically for non-spanning blobs le->blob->ref_map.get(le->blob_offset, le->length);