Commit beb9d33d6d

Alexandros Naskos <alex_naskos@hotmail.com>
2020-11-17 13:05:01
Disallow absolute paths passed as system libraries
Added OBJECT_NAME_INVALID handling in faccessatW
1 parent 8c9919e
Changed files (2)
lib
std
src
lib/std/os.zig
@@ -3809,6 +3809,7 @@ pub fn faccessatW(dirfd: fd_t, sub_path_w: [*:0]const u16, mode: u32, flags: u32
         .SUCCESS => return,
         .OBJECT_NAME_NOT_FOUND => return error.FileNotFound,
         .OBJECT_PATH_NOT_FOUND => return error.FileNotFound,
+        .OBJECT_NAME_INVALID => return error.BadPathName,
         .INVALID_PARAMETER => unreachable,
         .ACCESS_DENIED => return error.PermissionDenied,
         .OBJECT_PATH_SYNTAX_BAD => unreachable,
src/main.zig
@@ -1401,6 +1401,9 @@ fn buildOutputType(
                 _ = system_libs.orderedRemove(i);
                 continue;
             }
+            if (std.fs.path.isAbsolute(lib_name)) {
+                fatal("cannot use absolute path as a system library: {}", .{lib_name});
+            }
             i += 1;
         }
     }