summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/vm/vm_mmap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 90a2aaf..7c9406f 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -453,6 +453,13 @@ ommap(td, uap)
nargs.addr = uap->addr;
nargs.len = uap->len;
nargs.prot = cvtbsdprot[uap->prot & 0x7];
+#ifdef COMPAT_FREEBSD32
+#if defined(__amd64__) || defined(__ia64__)
+ if (i386_read_exec && SV_PROC_FLAG(td->td_proc, SV_ILP32) &&
+ nargs.prot != 0)
+ nargs.prot |= PROT_EXEC;
+#endif
+#endif
nargs.flags = 0;
if (uap->flags & OMAP_ANON)
nargs.flags |= MAP_ANON;
OpenPOWER on IntegriCloud