gallium/util: don't depend on implementation defined behavior in listen()
authorLucas Stach <l.stach@pengutronix.de>
Mon, 16 Sep 2019 12:43:13 +0000 (14:43 +0200)
committerLucas Stach <dev@lynxeye.de>
Fri, 18 Oct 2019 10:12:07 +0000 (10:12 +0000)
Using 0 as the backlog argument to listen() is exploiting implementation
defined behavior and will lead to no connections being accepted on some
libc implementations.

Quote of the listen manpage: "A backlog argument of 0 may allow the socket to
accept connections, in which case the length of the listen queue may be set to
an implementation-defined minimum value."

Fix this by using a more sensible backlog value.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
src/gallium/auxiliary/util/u_network.c

index a87ddab0bdee4284e37a10a81545b69933aaf8e2..31139f2983fb939fd8022e9a6012ee4f356f92b8 100644 (file)
@@ -167,7 +167,7 @@ u_socket_listen_on_port(uint16_t portnum)
       return -1;
    }
 
-   listen(s, 0);
+   listen(s, 1);
 
    return s;
 #else