]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commitdiff
vfs: add vfs_require_writable_path check to syscall_link_impl (P4.1)
authorTulio A M Mendes <[email protected]>
Mon, 25 May 2026 21:09:37 +0000 (18:09 -0300)
committerTulio A M Mendes <[email protected]>
Wed, 3 Jun 2026 04:02:35 +0000 (01:02 -0300)
src/kernel/syscall.c

index 5d37e9caed8696fb66ef0ba737ccaaf4afe28c5e..dd789aab23d78e17014ede9c2f75e3e6dbc34bb0 100644 (file)
@@ -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);