]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix bad iterator deref in _do_zero_tail_extent
authorSage Weil <sage@redhat.com>
Mon, 9 May 2016 14:36:14 +0000 (10:36 -0400)
committerSage Weil <sage@redhat.com>
Wed, 1 Jun 2016 15:38:44 +0000 (11:38 -0400)
The extent_map may be empty, or not contain anything at this offset.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 4d160e4d418d5b1f6e107e2aed7f326ec3d110f3..e49f190700b5b77e056abfdfa1c5189edc7be9ce 100644 (file)
@@ -5937,6 +5937,9 @@ void BlueStore::_do_zero_tail_extent(
   bp = o->onode.seek_lextent(offset);
   pp = o->onode.find_lextent(o->onode.size);
 
+  if (pp == o->onode.extent_map.end())
+    return;
+
   dout(10) << __func__ << " offset 0x" << std::hex << offset << " extent 0x"
           << pp->first << std::dec << ": " << pp->second << dendl;
   assert(offset > o->onode.size);