aboutsummaryrefslogtreecommitdiff
path: root/src/Package/Fetch.zig
diff options
context:
space:
mode:
authorMathias Lafeldt <mathias.lafeldt@gmail.com>2025-03-11 07:12:13 +0100
committerGitHub <noreply@github.com>2025-03-11 06:12:13 +0000
commit7e751e8040ad6afb9ae0a040ae4080c2f4b2f443 (patch)
tree03cd5a4a87aff08891a487e63940fab1fc8fd08a /src/Package/Fetch.zig
parent5ffd8bf5f6669469d3cdbad06f09cf3844723e3b (diff)
downloadzig-7e751e8040ad6afb9ae0a040ae4080c2f4b2f443.tar.gz
zig-7e751e8040ad6afb9ae0a040ae4080c2f4b2f443.zip
Merge pull request #23193 from mlafeldt/fix-macho-detection
Fetch: enhance Mach-O executable detection for modern Macs closes #21044
Diffstat (limited to 'src/Package/Fetch.zig')
-rw-r--r--src/Package/Fetch.zig11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Package/Fetch.zig b/src/Package/Fetch.zig
index 0b23d5d5bd..95961a893a 100644
--- a/src/Package/Fetch.zig
+++ b/src/Package/Fetch.zig
@@ -1850,7 +1850,11 @@ const FileHeader = struct {
return magic_number == std.macho.MH_MAGIC or
magic_number == std.macho.MH_MAGIC_64 or
magic_number == std.macho.FAT_MAGIC or
- magic_number == std.macho.FAT_MAGIC_64;
+ magic_number == std.macho.FAT_MAGIC_64 or
+ magic_number == std.macho.MH_CIGAM or
+ magic_number == std.macho.MH_CIGAM_64 or
+ magic_number == std.macho.FAT_CIGAM or
+ magic_number == std.macho.FAT_CIGAM_64;
}
pub fn isExecutable(self: *FileHeader) bool {
@@ -1875,6 +1879,11 @@ test FileHeader {
h.bytes_read = 0;
h.update(&macho64_magic_bytes);
try std.testing.expect(h.isExecutable());
+
+ const macho64_cigam_bytes = [_]u8{ 0xFE, 0xED, 0xFA, 0xCF };
+ h.bytes_read = 0;
+ h.update(&macho64_cigam_bytes);
+ try std.testing.expect(h.isExecutable());
}
// Result of the `unpackResource` operation. Enables collecting errors from