summaryrefslogtreecommitdiff
path: root/sys/src/9/teg2
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-03-16 02:37:07 +0100
committercinap_lenrek <cinap_lenrek@gmx.de>2013-03-16 02:37:07 +0100
commitf37465fd7f768a72628506956473ae69112cf774 (patch)
treec568568f95d3fad2a10340b03078bde8a759417f /sys/src/9/teg2
parent1357a44edc6cf27d2107b00ef91b4353dc2cbecf (diff)
sysexec: fix possible segment overlap with temporary stack
the kernel uses fixed area (TSTKTOP, TSTKSIZ) of the address space to temporarily map the new stack segment for exec. for 386 and arm, this area was right below the stack segment which has the problem that the program can map arbitrary segments there (even readonly). alpha and ppc dont have this problem as they map the temporary exec stack *above* the user reachable stack segement and segattach prevents one from mapping anything above or overlaping the stack. lots of arch code assumes USTKTOP being the end of userspace address space and changing this to TSTKTOP would work, but results in lots of hard to test changes. instead, we'r going to map the temporary stack programmatically finding a hole in the address space where to map it. we also lift the size limitation for arguments and allow arguments to fill the whole new stack segement. the TSTKTOP and TSTKSIZ are not used anymore so they where removed. references: http://9fans.net/archive/2013/03/203 http://9fans.net/archive/2013/03/202 http://9fans.net/archive/2013/03/197 http://9fans.net/archive/2013/03/195 http://9fans.net/archive/2013/03/181
Diffstat (limited to 'sys/src/9/teg2')
-rw-r--r--sys/src/9/teg2/mem.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/src/9/teg2/mem.h b/sys/src/9/teg2/mem.h
index aeb24d4e1..5243a6dba 100644
--- a/sys/src/9/teg2/mem.h
+++ b/sys/src/9/teg2/mem.h
@@ -93,8 +93,6 @@
*/
#define USTKTOP (0x40000000 - 64*KiB - MiB) /* user segment end +1 */
#define USTKSIZE (8*1024*1024) /* user stack size */
-#define TSTKTOP (USTKTOP-USTKSIZE) /* sysexec temporary stack */
-#define TSTKSIZ 256
/* address at which to copy and execute rebootcode */
#define REBOOTADDR KADDR(0x100)