diff options
| -rw-r--r-- | src/userprog/build/fail | 0 | ||||
| -rw-r--r-- | src/userprog/syscall.c | 4 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/userprog/build/fail b/src/userprog/build/fail deleted file mode 100644 index e69de29..0000000 --- a/src/userprog/build/fail +++ /dev/null diff --git a/src/userprog/syscall.c b/src/userprog/syscall.c index e845edb..8f4a08e 100644 --- a/src/userprog/syscall.c +++ b/src/userprog/syscall.c @@ -205,7 +205,7 @@ syscall_handler (struct intr_frame *f UNUSED) tid_t *child_tid; unsigned *size; void **buf; - + switch (*syscall_number) { case 0: // halt @@ -255,6 +255,7 @@ syscall_handler (struct intr_frame *f UNUSED) CHECK_PTR_AND_MAYBE_EXIT (buf); CHECK_PTR_AND_MAYBE_EXIT (*buf); CHECK_PTR_AND_MAYBE_EXIT (size); + CHECK_PTR_AND_MAYBE_EXIT (*buf + *size); f->eax = read (*fd_i, *buf, *size); break; case 9: @@ -266,6 +267,7 @@ syscall_handler (struct intr_frame *f UNUSED) CHECK_PTR_AND_MAYBE_EXIT (buf); CHECK_PTR_AND_MAYBE_EXIT (*buf); CHECK_PTR_AND_MAYBE_EXIT (size); + CHECK_PTR_AND_MAYBE_EXIT (*buf + *size); f->eax = write (*fd_i, *buf, *size); break; case 12: |
