]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore: check if length exist in mark_space_used and mark_space_free
authorXinyu Huang <xinyu.huang@intel.com>
Fri, 21 Apr 2023 14:42:00 +0000 (14:42 +0000)
committerXinyu Huang <xinyu.huang@intel.com>
Tue, 4 Jul 2023 09:07:13 +0000 (17:07 +0800)
to avoid misuse of buffer length and data length when there is a no actual data extent

Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
src/crimson/os/seastore/async_cleaner.cc

index 84677747b77cd15d39f9ba6b98abbd48a38b4e60..776f42b415d97ebe8609d2474f8700592d1c95fb 100644 (file)
@@ -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;