mirror of
https://github.com/ziglang/zig.git
synced 2026-02-15 13:58:27 +00:00
posix: fix socket fd leaks
This commit is contained in:
parent
ae7f3fc360
commit
17d0bb5bea
@ -3697,6 +3697,7 @@ pub fn socket(domain: u32, socket_type: u32, protocol: u32) SocketError!socket_t
|
||||
switch (errno(rc)) {
|
||||
.SUCCESS => {
|
||||
const fd = @as(fd_t, @intCast(rc));
|
||||
errdefer close(fd);
|
||||
if (!have_sock_flags) {
|
||||
try setSockFlags(fd, socket_type);
|
||||
}
|
||||
@ -4035,6 +4036,10 @@ pub fn accept(
|
||||
}
|
||||
};
|
||||
|
||||
errdefer switch (builtin.os.tag) {
|
||||
.windows => windows.closesocket(accepted_sock) catch unreachable,
|
||||
else => close(accepted_sock),
|
||||
};
|
||||
if (!have_accept4) {
|
||||
try setSockFlags(accepted_sock, flags);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user