summaryrefslogtreecommitdiffstats
path: root/src/userprog/process.c
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-14 13:28:01 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-03-14 13:34:36 +0100
commit20fa5aa70d2a5e599ea2604f51baa49c6e891ab3 (patch)
treedb5bc904bf8387e35c82a622abedf63c6512498a /src/userprog/process.c
parentf8b7ad12f3843134352efd9da7062f3db34283d6 (diff)
downloadpintos-20fa5aa70d2a5e599ea2604f51baa49c6e891ab3.tar.gz
check all pointers before dereferencing
Diffstat (limited to 'src/userprog/process.c')
-rw-r--r--src/userprog/process.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/userprog/process.c b/src/userprog/process.c
index fbf2f50..6170b53 100644
--- a/src/userprog/process.c
+++ b/src/userprog/process.c
@@ -145,6 +145,8 @@ process_wait (tid_t child_tid)
sema_down (&pc->exit_sema);
int exit_status = pc->exit_status;
pc->exit_status = -1;
+ sema_up (&pc->exit_sema); // a bit of a hack
+ // the child is killed so we can read again if we want to
return exit_status;
}
}