aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2023-12-08 01:31:33 +1100
committerStefano Brivio <sbrivio@redhat.com>2023-12-27 19:29:45 +0100
commit1f2aab8aaaa5f3a5d1bd712173187c92986f753b (patch)
tree77067577b30e0086b461ece76e84d613760becee
parent4681ea09bc15c09679713f0828424d4d3901d929 (diff)
downloadpasst-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.tar
passt-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.tar.gz
passt-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.tar.bz2
passt-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.tar.lz
passt-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.tar.xz
passt-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.tar.zst
passt-1f2aab8aaaa5f3a5d1bd712173187c92986f753b.zip
tcp: Fix address type for tcp_sock_init_af()
This takes a struct in_addr * (i.e. an IPv4 address), although it's explicitly supposed to handle IPv6 as well. Both its caller and sock_l4() which it calls use a void * for the address, which can be either an in_addr or an in6_addr. We get away with this, because we don't do anything with the pointer other than transfer it from the caller to sock_l4(), but it's misleading. And quite possibly technically UB, because C is like that. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r--tcp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tcp.c b/tcp.c
index 53a699e..f62b910 100644
--- a/tcp.c
+++ b/tcp.c
@@ -2908,7 +2908,7 @@ void tcp_sock_handler(struct ctx *c, union epoll_ref ref, uint32_t events)
* Return: fd for the new listening socket, negative error code on failure
*/
static int tcp_sock_init_af(const struct ctx *c, int af, in_port_t port,
- const struct in_addr *addr, const char *ifname)
+ const void *addr, const char *ifname)
{
union tcp_listen_epoll_ref tref = {
.port = port + c->tcp.fwd_in.delta[port],