From 81e631606e829fbbff78f972c6bbeeee6419bdf1 Mon Sep 17 00:00:00 2001 From: mingzi Date: Mon, 16 Jun 2025 20:56:42 +0800 Subject: [PATCH] fix: ensure write flag in COW fault handler - Add area.flags() to handle_cow_fault call - Assert WRITE flag presence in handle_cow_fault --- modules/axmm/src/aspace.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/axmm/src/aspace.rs b/modules/axmm/src/aspace.rs index 7b16f9ee55..94f1e1015a 100644 --- a/modules/axmm/src/aspace.rs +++ b/modules/axmm/src/aspace.rs @@ -287,7 +287,8 @@ impl AddrSpace { && !Self::handle_cow_fault( addr, paddr, - flags, + // Add write to flags (area.flags contains write) + area.flags(), page_size, &mut self.pt, ) @@ -674,6 +675,8 @@ impl AddrSpace { align: PageSize, pt: &mut PageTable, ) -> bool { + assert!(flags.contains(MappingFlags::WRITE)); + let paddr = paddr.align_down(align); match frame_table().ref_count(paddr) {