Skip to content

Commit 1b862ed

Browse files
mamillinyacool
authored andcommitted
fix some resource leaks
1 parent d21a9d2 commit 1b862ed

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

WebBench/socket.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,11 @@ int Socket(const char *host, int clientPort)
5858
// if(setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval)) == -1)
5959
// return -1;
6060
if (connect(sock, (struct sockaddr *)&ad, sizeof(ad)) < 0)
61+
{
62+
close(sock);
6163
return -1;
62-
64+
}
65+
6366
return sock;
6467
}
6568

WebServer/Util.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,10 @@ int socket_bind_listen(int port)
238238
// 消除bind时"Address already in use"错误
239239
int optval = 1;
240240
if(setsockopt(listen_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1)
241+
{
242+
close(listen_fd);
241243
return -1;
244+
}
242245

243246
// 设置服务器IP和Port,和监听描述副绑定
244247
struct sockaddr_in server_addr;
@@ -247,11 +250,17 @@ int socket_bind_listen(int port)
247250
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
248251
server_addr.sin_port = htons((unsigned short)port);
249252
if(bind(listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1)
253+
{
254+
close(listen_fd);
250255
return -1;
256+
}
251257

252258
// 开始监听,最大等待队列长为LISTENQ
253259
if(listen(listen_fd, 2048) == -1)
260+
{
261+
close(listen_fd);
254262
return -1;
263+
}
255264

256265
// 无效监听描述符
257266
if(listen_fd == -1)

0 commit comments

Comments
 (0)