From 416dd5765d6bd126c0180c2c50a134aa650bd0a8 Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Tue, 19 Jul 2022 23:31:38 -0700 Subject: [PATCH] macho: Pass sections by pointer when slicing names We were accidentally returning a pointer to stack memory, because these arguments were passed by value. It's just an accident that stage 1 was passing these by reference, so things were alright until stage 3. --- lib/std/macho.zig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/std/macho.zig b/lib/std/macho.zig index 67b0be9fda07..cd4bfa37fb73 100644 --- a/lib/std/macho.zig +++ b/lib/std/macho.zig @@ -653,7 +653,7 @@ pub const segment_command_64 = extern struct { nsects: u32 = 0, flags: u32 = 0, - pub fn segName(seg: segment_command_64) []const u8 { + pub fn segName(seg: *const segment_command_64) []const u8 { return parseName(&seg.segname); } }; @@ -772,11 +772,11 @@ pub const section_64 = extern struct { /// reserved reserved3: u32 = 0, - pub fn sectName(sect: section_64) []const u8 { + pub fn sectName(sect: *const section_64) []const u8 { return parseName(§.sectname); } - pub fn segName(sect: section_64) []const u8 { + pub fn segName(sect: *const section_64) []const u8 { return parseName(§.segname); }