aboutsummaryrefslogtreecommitdiff
path: root/core/net/socket_freebsd.odin
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-10-08 21:01:57 +0200
committerLaytan Laats <laytanlaats@hotmail.com>2024-10-08 21:01:57 +0200
commitd8af35f01e71ba1c711cd6d6c5fe0a43116c29f0 (patch)
treefe2cfa069697063d9beed65b472c3edc16d3c55b /core/net/socket_freebsd.odin
parentb839d06ac84f193252d5f3e5e76c432f623211bd (diff)
net: fix leaking sockets in dial_tcp if connect errors
Diffstat (limited to 'core/net/socket_freebsd.odin')
-rw-r--r--core/net/socket_freebsd.odin4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/net/socket_freebsd.odin b/core/net/socket_freebsd.odin
index 0f3a85cbb..2c193b0d8 100644
--- a/core/net/socket_freebsd.odin
+++ b/core/net/socket_freebsd.odin
@@ -114,8 +114,8 @@ _dial_tcp_from_endpoint :: proc(endpoint: Endpoint, options := default_tcp_optio
sockaddr := _endpoint_to_sockaddr(endpoint)
errno := freebsd.connect(cast(Fd)socket, &sockaddr, cast(freebsd.socklen_t)sockaddr.len)
if errno != nil {
- err = cast(Dial_Error)errno
- return
+ close(socket)
+ return {}, cast(Dial_Error)errno
}
return