From: Xinyu Huang Date: Fri, 21 Apr 2023 14:42:00 +0000 (+0000) Subject: crimson/os/seastore: check if length exist in mark_space_used and mark_space_free X-Git-Tag: v18.2.1~165^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b47fad7b4ae323fb28ac70d7721ba79b5ec0b8ae;p=ceph.git 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 (cherry picked from commit dc4a23cef3787099dcc17f99b05f4ec1a63eca9a) --- 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;