From a4d494f41a6c31240d68b13b3aa28a48d37e9e06 Mon Sep 17 00:00:00 2001 From: Tulio A M Mendes Date: Mon, 25 May 2026 18:09:37 -0300 Subject: [PATCH] vfs: add vfs_require_writable_path check to syscall_link_impl (P4.1) --- src/kernel/syscall.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/kernel/syscall.c b/src/kernel/syscall.c index 5d37e9ca..dd789aab 100644 --- a/src/kernel/syscall.c +++ b/src/kernel/syscall.c @@ -3304,8 +3304,12 @@ static int syscall_link_impl(const char* user_oldpath, const char* user_newpath) int rc2 = path_resolve_user(user_newpath, new_path, sizeof(new_path)); if (rc2 < 0) return rc2; + /* Check if filesystem is writable (MS_RDONLY) */ + int rc = vfs_require_writable_path(new_path); + if (rc < 0) return rc; + /* A07: check parent directory write+execute permission for new link */ - int rc = vfs_check_parent_permission(new_path, 3); /* write + execute */ + rc = vfs_check_parent_permission(new_path, 3); /* write + execute */ if (rc < 0) return rc; return vfs_link(old_path, new_path); -- 2.43.0