From 5cf79b5389a9aac9c51f9de5b70ced6c817707f6 Mon Sep 17 00:00:00 2001 From: EDiasAlberto Date: Thu, 5 Dec 2024 16:05:08 +0000 Subject: [PATCH] fix: add check to mmap to ensure file isn't mapped over stack segment --- src/userprog/syscall.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/userprog/syscall.c b/src/userprog/syscall.c index 44397ad..c3caba3 100644 --- a/src/userprog/syscall.c +++ b/src/userprog/syscall.c @@ -426,6 +426,10 @@ syscall_mmap (int fd, void *addr) if (file_size == 0) return MMAP_FAILURE; + /* ensures the page for mmap does not overlap with the stack */ + if (addr >= (thread_current ()->curr_esp - PGSIZE)) + return MMAP_FAILURE; + /* Check and ensure that there is enough space in the user virtual memory to hold the entire file. */ for (off_t ofs = 0; ofs < file_size; ofs += PGSIZE)