From db5e6184afb48da6f07e9eefc024ebbc9b7cb7f6 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:44:18 +0200 Subject: [PATCH] Remove unnecessary add_ref in ProcScheme::kfmap Grant::allocated_shared_one_page already adds a reference. This fixes a memory leak --- src/scheme/proc.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/scheme/proc.rs b/src/scheme/proc.rs index 6840564982..ebe55476e9 100644 --- a/src/scheme/proc.rs +++ b/src/scheme/proc.rs @@ -7,7 +7,7 @@ use crate::{ memory::{handle_notify_files, AddrSpace, AddrSpaceWrapper, Grant, PageSpan}, Context, ContextLock, Status, }, - memory::{get_page_info, AddRefError, RefKind, PAGE_SIZE}, + memory::PAGE_SIZE, ptrace, scheme::{self, FileHandle, KernelScheme}, sync::{CleanLockToken, RwLock, L1}, @@ -538,13 +538,6 @@ impl KernelScheme for ProcScheme { PAGE_SIZE => &sig.proc_control, _ => return Err(Error::new(EINVAL)), }; - let info = get_page_info(frame.get()).ok_or(Error::new(EBADFD))?; - match info.add_ref(RefKind::Shared) { - Ok(()) => (), - Err(AddRefError::RcOverflow) => return Err(Error::new(ENOMEM)), - Err(AddRefError::CowToShared) => unreachable!("cannot be CoW since it's a kernel RaiiFrame that at some point was made Shared"), - Err(AddRefError::SharedToCow) => unreachable!("wasn't requested"), - } // TODO: Allocated or AllocatedShared? let addrsp = AddrSpace::current()?; let page = addrsp.acquire_write().mmap(