Release fd if setsockopt or bind fails (#15826)
Stelios Fragkakis committed
Aug 17, 2023 at 15:21 UTC
bcc29cbe375a318a7b8bdbccb516084acf3d097b
1 file changed
+2
web/server/h2o/http_server.c
+2
@@ -46,6 +46,8 @@ static int create_listener(const char *ip, int port)
46
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ||
47
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr_flag, sizeof(reuseaddr_flag)) != 0 ||
48
bind(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0 || listen(fd, SOMAXCONN) != 0) {
49
+ if (fd != -1)
50
+ close(fd);
51
return -1;
52
}
53