fix: add check to mmap to ensure file isn't mapped over stack segment (ed1223)
This commit is contained in:
@@ -426,6 +426,10 @@ syscall_mmap (int fd, void *addr)
|
|||||||
if (file_size == 0)
|
if (file_size == 0)
|
||||||
return MMAP_FAILURE;
|
return MMAP_FAILURE;
|
||||||
|
|
||||||
|
/* Ensure that the mmap page doesn't 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
|
/* Check and ensure that there is enough space in the user virtual memory to
|
||||||
hold the entire file. */
|
hold the entire file. */
|
||||||
for (off_t ofs = 0; ofs < file_size; ofs += PGSIZE)
|
for (off_t ofs = 0; ofs < file_size; ofs += PGSIZE)
|
||||||
|
|||||||
Reference in New Issue
Block a user