From: Samuel Just Date: Fri, 8 Oct 2021 05:01:12 +0000 (-0700) Subject: crimson/os/seastore/segment_cleaner: check for null in SpaceTrackerSimple constructor X-Git-Tag: v17.1.0~712^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d062f6829b2e7758a1e901ddcaa4bf6c5e136c5f;p=ceph-ci.git crimson/os/seastore/segment_cleaner: check for null in SpaceTrackerSimple constructor Since we're passing a sparse pointer vector, we need to check for null in every user. Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/seastore/segment_cleaner.h b/src/crimson/os/seastore/segment_cleaner.h index 4e79785c52a..8fe3e606917 100644 --- a/src/crimson/os/seastore/segment_cleaner.h +++ b/src/crimson/os/seastore/segment_cleaner.h @@ -384,6 +384,12 @@ class SpaceTrackerSimple : public SpaceTrackerI { public: SpaceTrackerSimple(std::vector sms) { for (auto sm : sms) { + if (!sm) { + // sms is a vector that is indexed by device id and + // always has "max_device" elements, some of which + // may be null. + continue; + } live_bytes_by_segment.add_segment_manager( *sm, segment_space_tracker_t{});