mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
link.Elf: Ensure archive header fields are not left blank
ld.lld fails with "truncated or malformed archive" errors when reading archive header field values that are not valid numbers.
This commit is contained in:
parent
38d44404a5
commit
43eb9b52cc
1 changed files with 5 additions and 1 deletions
|
|
@ -118,7 +118,6 @@ pub fn setArHdr(opts: struct {
|
|||
.ar_fmag = undefined,
|
||||
};
|
||||
@memset(mem.asBytes(&hdr), 0x20);
|
||||
@memcpy(&hdr.ar_fmag, elf.ARFMAG);
|
||||
|
||||
{
|
||||
var writer: std.Io.Writer = .fixed(&hdr.ar_name);
|
||||
|
|
@ -129,10 +128,15 @@ pub fn setArHdr(opts: struct {
|
|||
.name_off => |x| writer.print("/{d}", .{x}) catch unreachable,
|
||||
}
|
||||
}
|
||||
hdr.ar_date[0] = '0';
|
||||
hdr.ar_uid[0] = '0';
|
||||
hdr.ar_gid[0] = '0';
|
||||
hdr.ar_mode[0] = '0';
|
||||
{
|
||||
var writer: std.Io.Writer = .fixed(&hdr.ar_size);
|
||||
writer.print("{d}", .{opts.size}) catch unreachable;
|
||||
}
|
||||
hdr.ar_fmag = elf.ARFMAG.*;
|
||||
|
||||
return hdr;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue