From 3a0671d20f061572ae89fe2cf97b8f34f5b89f21 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sun, 14 Apr 2019 19:23:23 -0600 Subject: [PATCH] Fix dropping grants without unmapping if they have no file descriptor (such as those from anonymous maps) --- src/syscall/fs.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/syscall/fs.rs b/src/syscall/fs.rs index d4ef7f7..55bed42 100644 --- a/src/syscall/fs.rs +++ b/src/syscall/fs.rs @@ -427,11 +427,9 @@ pub fn funmap(virtual_address: usize) -> Result { let end = start + grants[i].size(); if virtual_address >= start && virtual_address < end { let mut grant = grants.remove(i); - if grant.desc_opt.is_some() { - desc_opt = grant.desc_opt.take(); - grant.unmap(); - break; - } + desc_opt = grant.desc_opt.take(); + grant.unmap(); + break; } } }