From 371ab7fa96f8e439f4008c973c37aa44ab6ed81e Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Thu, 1 Sep 2011 13:25:34 -0400 Subject: inaccessible page under the user stack page, to help exec deal w/ too-large args --- vm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'vm.c') diff --git a/vm.c b/vm.c index 247fede..c717baf 100644 --- a/vm.c +++ b/vm.c @@ -363,3 +363,16 @@ copyout(pde_t *pgdir, uint va, void *p, uint len) } return 0; } + +// Clear PTE_U on a page. Used to create an inaccessible +// page beneath the user stack. +void +clear_pte_u(pde_t *pgdir, char *uva) +{ + pte_t *pte; + + pte = walkpgdir(pgdir, uva, 0); + if(pte == 0) + panic("clear_pte_u"); + *pte &= ~PTE_U; +} -- cgit v1.2.3