aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-10-08 17:42:49 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-10-08 17:42:49 -0700
commit5e7c44a3211dc8b1bb0b6d3d4764f8fd0b8c665b (patch)
tree17c5ba50c1c6680842bd8e7526548b144566abe5 /src
parent6d84caf72771cf05997518ae2fa40a94de709de4 (diff)
downloadzig-5e7c44a3211dc8b1bb0b6d3d4764f8fd0b8c665b.tar.gz
zig-5e7c44a3211dc8b1bb0b6d3d4764f8fd0b8c665b.zip
Package.Fetch: tighten up check for path outside root
Diffstat (limited to 'src')
-rw-r--r--src/Package/Fetch.zig4
-rw-r--r--src/Package/Manifest.zig3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/Package/Fetch.zig b/src/Package/Fetch.zig
index 373ab5be78..8fe1627dbc 100644
--- a/src/Package/Fetch.zig
+++ b/src/Package/Fetch.zig
@@ -257,7 +257,9 @@ pub fn run(f: *Fetch) RunError!void {
f.hash_tok,
try eb.addString("path-based dependencies are not hashed"),
);
- if (std.mem.startsWith(u8, pkg_root.sub_path, "../")) {
+ if (std.mem.startsWith(u8, pkg_root.sub_path, "../") or
+ std.mem.eql(u8, pkg_root.sub_path, ".."))
+ {
return f.fail(
f.location_tok,
try eb.printString("dependency path outside project: '{}{s}'", .{
diff --git a/src/Package/Manifest.zig b/src/Package/Manifest.zig
index 7fce7c8bcb..de1870ea75 100644
--- a/src/Package/Manifest.zig
+++ b/src/Package/Manifest.zig
@@ -318,8 +318,7 @@ const Parse = struct {
for (array_init.ast.elements) |elem_node| {
const path_string = try parseString(p, elem_node);
- const normalized = try std.fs.path.resolve(p.arena, &.{path_string});
- try p.paths.put(p.gpa, normalized, {});
+ try p.paths.put(p.gpa, path_string, {});
}
}