From dc50e439b306687e3fcee1f9d012e4d9989d3985 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Thu, 4 Sep 2025 22:16:29 +0200 Subject: [PATCH] package/sslh: add upstream patch to fix build w/ gcc-15 Add an upstream patch to fix a build issue related to struct sockaddr_storage: udp-listener.c: In function 'cnx_cmp': udp-listener.c:39:30: error: initialization of 'struct sockaddr *' from incompatible pointer type 'struct sockaddr_storage *' [-Wincompatible-pointer-types] 39 | struct sockaddr* addr1 = &cnx1->client_addr; | ^ udp-listener.c:42:30: error: initialization of 'struct sockaddr *' from incompatible pointer type 'struct sockaddr_storage *' [-Wincompatible-pointer-types] 42 | struct sockaddr* addr2 = &cnx2->client_addr; | ^ udp-listener.c: In function 'hash_make_key': udp-listener.c:55:29: error: initialization of 'struct sockaddr *' from incompatible pointer type 'struct sockaddr_storage *' [-Wincompatible-pointer-types] 55 | struct sockaddr* addr = &new->client_addr; | ^ udp-listener.c: In function 'udp_s2c_forward': udp-listener.c:330:18: error: passing argument 5 of 'sendto' from incompatible pointer type [-Wincompatible-pointer-types] 330 | &cnx->client_addr, cnx->addrlen); | ^~~~~~~~~~~~~~~~~ | | | struct sockaddr_storage * Fixes: https://autobuild.buildroot.net/results/0cbbb75c4aab19b9d5f42695359ac6fe97e5989b/ Signed-off-by: Peter Korsgaard --- ...002-fix-warnings-on-sockaddr-storage.patch | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 package/sslh/0002-fix-warnings-on-sockaddr-storage.patch diff --git a/package/sslh/0002-fix-warnings-on-sockaddr-storage.patch b/package/sslh/0002-fix-warnings-on-sockaddr-storage.patch new file mode 100644 index 0000000000..4df920f718 --- /dev/null +++ b/package/sslh/0002-fix-warnings-on-sockaddr-storage.patch @@ -0,0 +1,56 @@ +From 402ca5219b5dcf7a502cd3f75906423527837a7a Mon Sep 17 00:00:00 2001 +From: Yves Rutschle +Date: Thu, 4 Jan 2024 23:22:44 +0100 +Subject: [PATCH] fix warnings on sockaddr storage + +Upstream: https://github.com/yrutschle/sslh/commit/402ca5219b5dcf7a502cd3f75906423527837a7a +Signed-off-by: Peter Korsgaard +--- + udp-listener.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/udp-listener.c b/udp-listener.c +index 570e480..bc7a3f4 100644 +--- a/udp-listener.c ++++ b/udp-listener.c +@@ -36,10 +36,10 @@ + + static int cnx_cmp(struct connection* cnx1, struct connection* cnx2) + { +- struct sockaddr* addr1 = &cnx1->client_addr; ++ struct sockaddr_storage* addr1 = &cnx1->client_addr; + socklen_t addrlen1 = cnx1->addrlen; + +- struct sockaddr* addr2 = &cnx2->client_addr; ++ struct sockaddr_storage* addr2 = &cnx2->client_addr; + socklen_t addrlen2 = cnx2->addrlen; + + if (addrlen1 != addrlen2) return -1; +@@ -52,13 +52,13 @@ static int cnx_cmp(struct connection* cnx1, struct connection* cnx2) + * lowest bytes of remote port */ + static int hash_make_key(hash_item new) + { +- struct sockaddr* addr = &new->client_addr; ++ struct sockaddr_storage* addr = &new->client_addr; + //socklen_t addrlen = new->addrlen; + struct sockaddr_in* addr4; + struct sockaddr_in6* addr6; + int out; + +- switch (addr->sa_family) { ++ switch (((struct sockaddr*)addr)->sa_family) { + case AF_INET: + addr4 = (struct sockaddr_in*)addr; + out = addr4->sin_port; +@@ -327,7 +327,7 @@ void udp_s2c_forward(struct connection* cnx) + if ((res == -1) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) return; + CHECK_RES_DIE(res, "udp_listener/recvfrom"); + res = sendto(cnx->local_endpoint, data, res, 0, +- &cnx->client_addr, cnx->addrlen); ++ (struct sockaddr*)&cnx->client_addr, cnx->addrlen); + mark_active(cnx); + } + +-- +2.39.5 +