From 808f7561179320650090085bb98f8d0cd4634624 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 6 Jun 2021 17:30:17 +0200 Subject: vm_map: Allow exagerated max_prot for now glibc's mmap implementation assumes that gnumach will cap the prot for it, so for now let's revert back to capping rather than rejecting. That fixes mmap(SHARED|READ) for read-only objects. --- vm/vm_user.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vm/vm_user.c b/vm/vm_user.c index 934e3e50..42ee5e08 100644 --- a/vm/vm_user.c +++ b/vm/vm_user.c @@ -357,9 +357,9 @@ kern_return_t vm_map( if (!copy) { - /* Disallow protection beyond proxy's own limits. */ - if ((cur_protection & ~prot) || (max_protection & ~prot)) - return KERN_PROTECTION_FAILURE; + /* Reduce the allowed access to the memory object. */ + max_protection &= prot; + cur_protection &= prot; } else { -- cgit v1.2.3