From 0271578987088210d7d2d68addbd5e8fe27d4383 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 9 Apr 2014 12:08:51 +0200 Subject: [PATCH] lib/socket: don't fail if no more local ports can be assigned in nl_socket_alloc By failing inside of nl_socket_alloc(), the user can not even work around when running out of local ports. This patch changes that if there are no more local ports, we set the port to UINT32_MAX. This is a consistent behavior to calling nl_socket_set_local_port(sk, 0). In general, since nl_socket_set_local_port() does not restict the generated ports in any way we cannot assume to have a valid port. So the check in the constructor was harmful and users who ever encountered it (because they created 1024 libnl3 sockets) could not even work around it. Acked-by: Thomas Graf Signed-off-by: Thomas Haller --- lib/socket.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/socket.c b/lib/socket.c index 959b122..eb4a978 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -126,10 +126,6 @@ static struct nl_sock *__alloc_socket(struct nl_cb *cb) sk->s_peer.nl_family = AF_NETLINK; sk->s_seq_expect = sk->s_seq_next = time(0); sk->s_local.nl_pid = generate_local_port(); - if (sk->s_local.nl_pid == UINT32_MAX) { - nl_socket_free(sk); - return NULL; - } return sk; }