threads / patch / 63697

patchdaemon: remove unnecesary restriction for listener fd

Subject: [PATCH] daemon: remove unnecesary restriction for listener fd

## tl;dr

2 messages between Jun 26, 2025 and Jun 26, 2025. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Carlo Marcelo Arenas Belón· Jun 26, 2025, 09:51 UTC · lore

Since df076bdbcc ([PATCH] GIT: Listen on IPv6 as well, if available., 2005-07-23), any file descriptor assigned to a listening socket was validated to be within the range to be used in an FDSET later.

6573faff34 (NO_IPV6 support for git daemon, 2005-09-28), moves to use poll() instead of select(), that doesn't have that restriction, so remove the original check.

Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
 daemon.c | 5 -----
 1 file changed, 5 deletions(-)
Show changes to daemon.c +0 −5
diff --git a/daemon.c b/daemon.c
index d1be61fd57..99741f0b45 100644
--- a/daemon.c
+++ b/daemon.c
@@ -990,11 +990,6 @@ static int setup_named_sock(char *listen_addr, int listen_port, struct socketlis
 		sockfd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
 		if (sockfd < 0)
 			continue;
-		if (sockfd >= FD_SETSIZE) {
-			logerror("Socket descriptor too large");
-			close(sockfd);
-			continue;
-		}
 
 #ifdef IPV6_V6ONLY
 		if (ai->ai_family == AF_INET6) {
-- 
2.50.0.132.g8e5a977e07
Phillip Wood· Jun 26, 2025, 13:17 UTC · re: Carlo Marcelo Arenas Belón · lore

Re: [PATCH] daemon: remove unnecesary restriction for listener fd

Hi Carlo
On 26/06/2025 10:51, Carlo Marcelo Arenas Belón wrote:
Show 7 quoted lines
> Since df076bdbcc ([PATCH] GIT: Listen on IPv6 as well, if available.,
> 2005-07-23), any file descriptor assigned to a listening socket was
> validated to be within the range to be used in an FDSET later.
> 
> 6573faff34 (NO_IPV6 support for git daemon, 2005-09-28), moves to
> use poll() instead of select(), that doesn't have that restriction,
> so remove the original check.
Nice find, this patch looks good to me.
Thanks
Phillip
Show 21 quoted lines
> Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> ---
>   daemon.c | 5 -----
>   1 file changed, 5 deletions(-)
> 
> diff --git a/daemon.c b/daemon.c
> index d1be61fd57..99741f0b45 100644
> --- a/daemon.c
> +++ b/daemon.c
> @@ -990,11 +990,6 @@ static int setup_named_sock(char *listen_addr, int listen_port, struct socketlis
>   		sockfd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
>   		if (sockfd < 0)
>   			continue;
> -		if (sockfd >= FD_SETSIZE) {
> -			logerror("Socket descriptor too large");
> -			close(sockfd);
> -			continue;
> -		}
>   
>   #ifdef IPV6_V6ONLY
>   		if (ai->ai_family == AF_INET6) {

← back to recent threads