From 1e841a7881e513d60add3653e487646c840f8e11 Mon Sep 17 00:00:00 2001 From: Jarred SUmner Date: Sat, 7 Jan 2023 21:05:02 -0800 Subject: Fix segfault on Linux when getaddrinfo returns an error\nSee https://github.com/ziglang/zig/pull/14242 --- src/bun.js/api/bun/dns_resolver.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/bun.js/api/bun/dns_resolver.zig b/src/bun.js/api/bun/dns_resolver.zig index d6eced813..f376151ad 100644 --- a/src/bun.js/api/bun/dns_resolver.zig +++ b/src/bun.js/api/bun/dns_resolver.zig @@ -739,7 +739,6 @@ pub const GetAddrInfoRequest = struct { if (hints) |*hint| hint else null, &addrinfo, ); - defer std.c.freeaddrinfo(addrinfo); JSC.Node.Syscall.syslog("getaddrinfo({s}, {d}) = {d} ({any})", .{ query.name, port, @@ -750,6 +749,10 @@ pub const GetAddrInfoRequest = struct { this.* = .{ .err = @enumToInt(err) }; return; } + + // do not free addrinfo when err != 0 + // https://github.com/ziglang/zig/pull/14242 + defer std.c.freeaddrinfo(addrinfo); this.* = .{ .success = GetAddrInfo.Result.toList(default_allocator, addrinfo) catch unreachable }; } -- cgit v1.2.3