From d062f6829b2e7758a1e901ddcaa4bf6c5e136c5f Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Thu, 7 Oct 2021 22:01:12 -0700 Subject: [PATCH] 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 --- src/crimson/os/seastore/segment_cleaner.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/crimson/os/seastore/segment_cleaner.h b/src/crimson/os/seastore/segment_cleaner.h index 4e79785c52aeb..8fe3e60691710 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{}); -- 2.39.5