diff options
Diffstat (limited to 'debian/patches/exec-redzone0.patch')
| -rw-r--r-- | debian/patches/exec-redzone0.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/debian/patches/exec-redzone0.patch b/debian/patches/exec-redzone0.patch new file mode 100644 index 00000000..59398093 --- /dev/null +++ b/debian/patches/exec-redzone0.patch @@ -0,0 +1,36 @@ +From 08936efa78337cdd50676fbde2f61ae13c249a01 Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Mon, 22 Sep 2014 17:59:57 +0200 +Subject: [PATCH] exec: redzone page zero before loading anything + +This prevents load_section from mapping any sections to page zero. + +* exec/exec.c (do_exec): Redzone page zero before loading anything. +--- + exec/exec.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/exec/exec.c b/exec/exec.c +index 2fc1e44..0ecf2d3 100644 +--- a/exec/exec.c ++++ b/exec/exec.c +@@ -1116,6 +1116,16 @@ do_exec (file_t file, + mach_port_destroy (oldtask, destroynames[i]); + } + ++ /* Map page zero redzoned. */ ++ { ++ vm_address_t addr = 0; ++ e.error = vm_map (newtask, ++ &addr, vm_page_size, 0, 0, MACH_PORT_NULL, 0, 1, ++ VM_PROT_NONE, VM_PROT_NONE, VM_INHERIT_COPY); ++ if (e.error) ++ goto out; ++ } ++ + /* XXX this should be below + it is here to work around a vm_map kernel bug. */ + if (interp.file != MACH_PORT_NULL) +-- +2.1.0 + |
