From dc4a23cef3787099dcc17f99b05f4ec1a63eca9a Mon Sep 17 00:00:00 2001 From: Xinyu Huang Date: Fri, 21 Apr 2023 14:42:00 +0000 Subject: [PATCH] crimson/os/seastore: check if length exist in mark_space_used and mark_space_free to avoid misuse of buffer length and data length when there is a no actual data extent Signed-off-by: Xinyu Huang --- src/crimson/os/seastore/async_cleaner.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/crimson/os/seastore/async_cleaner.cc b/src/crimson/os/seastore/async_cleaner.cc index 84677747b77..776f42b415d 100644 --- a/src/crimson/os/seastore/async_cleaner.cc +++ b/src/crimson/os/seastore/async_cleaner.cc @@ -1462,6 +1462,7 @@ void SegmentCleaner::mark_space_used( { LOG_PREFIX(SegmentCleaner::mark_space_used); assert(background_callback->get_state() >= state_t::SCAN_SPACE); + assert(len); // TODO: drop if (addr.get_addr_type() != paddr_types_t::SEGMENT) { return; @@ -1492,6 +1493,7 @@ void SegmentCleaner::mark_space_free( { LOG_PREFIX(SegmentCleaner::mark_space_free); assert(background_callback->get_state() >= state_t::SCAN_SPACE); + assert(len); // TODO: drop if (addr.get_addr_type() != paddr_types_t::SEGMENT) { return; -- 2.39.5