diff options
author | Anton Kling <anton@kling.gg> | 2024-07-06 18:19:02 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-07-06 18:19:02 +0200 |
commit | 7e7f15d494c6fcdbba8e7ba24ce9ca04181a3f7b (patch) | |
tree | 12ba306d180f3e5f9aac87c2b55cea9cf2e2a1d8 | |
parent | 6bf371cc35c11890ab18c32aabd11bf8a816e574 (diff) |
Bug fix: Fix use after free when closing a pipe
The other inode might already have been freed when close() is called.
-rw-r--r-- | kernel/fs/tmpfs.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/fs/tmpfs.c b/kernel/fs/tmpfs.c index 2ce8ece..f979d92 100644 --- a/kernel/fs/tmpfs.c +++ b/kernel/fs/tmpfs.c @@ -7,6 +7,9 @@ #include <typedefs.h> void tmp_close(vfs_fd_t *fd) { + if (!fd->inode->is_open) { + return; + } fd->inode->is_open = 0; ((tmp_inode *)fd->inode->internal_object)->read_inode->is_open = 0; } |