RFP prot support: disallow mprotect() on manyprots mappings From: Paolo 'Blaisorblade' Giarrusso For now we (I and Hugh) have found no agreement on which behavior to implement here. So, at least as a stop-gap, return an error here. Signed-off-by: Paolo 'Blaisorblade' Giarrusso --- mm/mprotect.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/mm/mprotect.c b/mm/mprotect.c index 638edab..401ae11 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -240,6 +240,13 @@ sys_mprotect(unsigned long start, size_t error = -ENOMEM; if (!vma) goto out; + + /* If a need is felt, an appropriate behaviour may be implemented for + * this case. We haven't agreed yet on which behavior is appropriate. */ + error = -EACCES; + if (vma->vm_flags & VM_MANYPROTS) + goto out; + if (unlikely(grows & PROT_GROWSDOWN)) { if (vma->vm_start >= end) goto out;