diff --git a/userprog/syscall_open.c b/userprog/syscall_open.c index fadce9511dec77c50fa7f8e10baacd6843d7b873..fcbbe06e7b871a726c740ffe5ada079184f31984 100644 --- a/userprog/syscall_open.c +++ b/userprog/syscall_open.c @@ -23,5 +23,10 @@ void syscall_open(struct intr_frame *f) { } // Described in system_calls.h, get a new file descriptor int file_descriptor = associate_new_file_descriptor(file); + + if (file_descriptor == -1) { + f->eax = -1; // Returning a failure state + return; + } f->eax = file_descriptor; // Returning the file descriptor }