mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-10-06 21:55:13 +00:00
enable SOCK_CLOEXEC explicit
leaking here means fork/vfork will duplicate fd without O_CLOEXEC flag to the child process. Signed-off-by: wanggang26 <wanggang26@xiaomi.com>
This commit is contained in:
parent
3f0c9306d3
commit
eab2cba4a1
20 changed files with 56 additions and 30 deletions
|
|
@ -182,7 +182,7 @@ static inline bool net_connection(struct net_listener_s *nls)
|
|||
printf("lo_listener: Accepting new connection on sd=%d\n",
|
||||
nls->listensd);
|
||||
|
||||
sd = accept(nls->listensd, NULL, NULL);
|
||||
sd = accept4(nls->listensd, NULL, NULL, SOCK_CLOEXEC);
|
||||
if (sd < 0)
|
||||
{
|
||||
printf("lo_listener: accept failed: %d\n", errno);
|
||||
|
|
|
|||
|
|
@ -145,7 +145,12 @@ void nettest_server(void)
|
|||
|
||||
printf("server: Accepting connections on port %d\n",
|
||||
CONFIG_EXAMPLES_NETTEST_SERVER_PORTNO);
|
||||
#ifdef __APPLE__
|
||||
acceptsd = accept(listensd, (struct sockaddr *)&myaddr, &addrlen);
|
||||
#else
|
||||
acceptsd = accept4(listensd, (struct sockaddr *)&myaddr, &addrlen,
|
||||
SOCK_CLOEXEC);
|
||||
#endif
|
||||
if (acceptsd < 0)
|
||||
{
|
||||
printf("server: accept failure: %d\n", errno);
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ static inline bool net_connection(struct net_listener_s *nls)
|
|||
printf("net_listener: Accepting new connection on sd=%d\n",
|
||||
nls->listensd);
|
||||
|
||||
sd = accept(nls->listensd, NULL, NULL);
|
||||
sd = accept4(nls->listensd, NULL, NULL, SOCK_CLOEXEC);
|
||||
if (sd < 0)
|
||||
{
|
||||
printf("net_listener: accept failed: %d\n", errno);
|
||||
|
|
|
|||
|
|
@ -278,7 +278,8 @@ void *net_reader(pthread_addr_t pvarg)
|
|||
printf("net_reader: Accepting new connections on port %d\n",
|
||||
LISTENER_PORT);
|
||||
addrlen = sizeof(struct sockaddr_in);
|
||||
acceptsd = accept(listensd, (struct sockaddr *)&addr, &addrlen);
|
||||
acceptsd = accept4(listensd, (struct sockaddr *)&addr, &addrlen,
|
||||
SOCK_CLOEXEC);
|
||||
if (acceptsd < 0)
|
||||
{
|
||||
printf("net_reader: accept failure: %d\n", errno);
|
||||
|
|
|
|||
|
|
@ -238,7 +238,8 @@ static int rpsock_stream_server(int argc, char *argv[])
|
|||
}
|
||||
|
||||
printf("server: try accept ...\n");
|
||||
new = accept(listensd, (struct sockaddr *)&myaddr, &addrlen);
|
||||
new = accept4(listensd, (struct sockaddr *)&myaddr, &addrlen,
|
||||
SOCK_CLOEXEC);
|
||||
if (new < 0)
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -243,9 +243,9 @@ int main(int argc, char *argv[])
|
|||
/* Wait for a new client socket connection */
|
||||
|
||||
addr_size = sizeof server_storage;
|
||||
new_socket_client_fd = accept(socket_server_fd,
|
||||
(struct sockaddr *)&server_storage,
|
||||
&addr_size);
|
||||
new_socket_client_fd = accept4(socket_server_fd,
|
||||
(struct sockaddr *)&server_storage,
|
||||
&addr_size, SOCK_CLOEXEC);
|
||||
|
||||
if (new_socket_client_fd < 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -153,7 +153,12 @@ void tcpblaster_server(void)
|
|||
|
||||
printf("server: Accepting connections on port %d\n",
|
||||
CONFIG_EXAMPLES_TCPBLASTER_SERVER_PORTNO);
|
||||
#ifdef __APPLE__
|
||||
acceptsd = accept(listensd, (FAR struct sockaddr *)&myaddr, &addrlen);
|
||||
#else
|
||||
acceptsd = accept4(listensd, (FAR struct sockaddr *)&myaddr, &addrlen,
|
||||
SOCK_CLOEXEC);
|
||||
#endif
|
||||
if (acceptsd < 0)
|
||||
{
|
||||
printf("server: accept failure: %d\n", errno);
|
||||
|
|
|
|||
|
|
@ -244,7 +244,8 @@ static int tcpecho_server(void)
|
|||
/* new client connection */
|
||||
|
||||
clilen = sizeof(cliaddr);
|
||||
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &clilen);
|
||||
connfd = accept4(listenfd, (struct sockaddr *)&cliaddr, &clilen,
|
||||
SOCK_CLOEXEC);
|
||||
|
||||
ninfo("new client: %s\n",
|
||||
inet_ntoa_r(cliaddr.sin_addr, inetaddr, sizeof(inetaddr)));
|
||||
|
|
|
|||
|
|
@ -132,7 +132,8 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
#endif
|
||||
|
||||
acceptsd = accept(listensd, (struct sockaddr *)&myaddr, &addrlen);
|
||||
acceptsd = accept4(listensd, (struct sockaddr *)&myaddr, &addrlen,
|
||||
SOCK_CLOEXEC);
|
||||
if (acceptsd < 0)
|
||||
{
|
||||
printf("server: accept failure: %d\n", errno);
|
||||
|
|
|
|||
|
|
@ -410,7 +410,8 @@ int main(int argc, FAR char *argv[])
|
|||
for (; ; )
|
||||
{
|
||||
clilen = sizeof(cliaddr);
|
||||
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &clilen);
|
||||
connfd = accept4(listenfd, (struct sockaddr *)&cliaddr, &clilen,
|
||||
SOCK_CLOEXEC);
|
||||
if (connfd <= 0)
|
||||
{
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue