authorgravatar for 16590917+llogick@users.noreply.github.comllogick <16590917+llogick@users.noreply.github.com> 2026-01-27 14:58:24-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-28 03:12:00+01:00
log11c3b4bd4178c78af103f5397fc3aafd09a2a979
tree49cc94697334f680d35644b87020031af1da95c7
parent0f51f663f06728f38f518073a23d69a7c1b0d792

Fix std.process.run leaking memory if child.wait returned an error


1 files changed, 9 insertions(+), 3 deletions(-)

lib/std/process.zig+9-3
......@@ -533,10 +533,16 @@ pub fn run(gpa: Allocator, io: Io, options: RunOptions) RunError!RunResult {
533533
534534 try child.collectOutput(gpa, &stdout, &stderr, options.max_output_bytes);
535535
536 const term = try child.wait(io);
537
538 const owned_stdout = try stdout.toOwnedSlice(gpa);
539 errdefer gpa.free(owned_stdout);
540 const owned_stderr = try stderr.toOwnedSlice(gpa);
541
536542 return .{
537 .stdout = try stdout.toOwnedSlice(gpa),
538 .stderr = try stderr.toOwnedSlice(gpa),
539 .term = try child.wait(io),
543 .stdout = owned_stdout,
544 .stderr = owned_stderr,
545 .term = term,
540546 };
541547}
542548