summaryrefslogtreecommitdiff
path: root/kernel/exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/exec.c')
-rw-r--r--kernel/exec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/exec.c b/kernel/exec.c
index 09b4bdc..3c468e1 100644
--- a/kernel/exec.c
+++ b/kernel/exec.c
@@ -49,7 +49,7 @@ exec(char *path, char **argv)
if(ph.vaddr + ph.memsz < ph.vaddr)
goto bad;
uint64 sz1;
- if((sz1 = uvmalloc(pagetable, sz, ph.vaddr + ph.memsz)) == 0)
+ if((sz1 = uvmalloc(pagetable, sz, ph.vaddr + ph.memsz, PTE_X|PTE_W)) == 0)
goto bad;
sz = sz1;
if((ph.vaddr % PGSIZE) != 0)
@@ -69,7 +69,7 @@ exec(char *path, char **argv)
// Use the second as the user stack.
sz = PGROUNDUP(sz);
uint64 sz1;
- if((sz1 = uvmalloc(pagetable, sz, sz + 2*PGSIZE)) == 0)
+ if((sz1 = uvmalloc(pagetable, sz, sz + 2*PGSIZE, PTE_W)) == 0)
goto bad;
sz = sz1;
uvmclear(pagetable, sz-2*PGSIZE);