diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2023-12-08 01:31:33 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-12-27 19:29:45 +0100 |
commit | 1f2aab8aaaa5f3a5d1bd712173187c92986f753b (patch) | |
tree | 77067577b30e0086b461ece76e84d613760becee | |
parent | 4681ea09bc15c09679713f0828424d4d3901d929 (diff) | |
download | passt-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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], |