commit 93f6cb04c6edb2c72525e92e3ebdab3c6f1b1eb7
parent b095b425d7a624f96895bdafb8eb6d134002f2d0
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date: Sun, 8 Feb 2026 16:14:03 +0100
Fixes for FreeBSD
Diffstat:
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/mhd2/daemon_add_conn.c b/src/mhd2/daemon_add_conn.c
@@ -320,7 +320,7 @@ new_connection_prepare_ (struct MHD_Daemon *restrict daemon,
c->sk.addr.data = addr;
c->sk.addr.size = addrlen;
#ifdef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
- c->sk.addr.data->ss_len = addrlen;
+ c->sk.addr.data->ss_len = (uint8_t) addrlen;
#endif /* HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */
addr = NULL;
}
@@ -714,6 +714,10 @@ MHD_daemon_add_connection (struct MHD_Daemon *MHD_RESTRICT daemon,
+ offsetof (struct sockaddr, sa_len)))
log_bad_addlen = true;
#endif /* HAVE_STRUCT_SOCKADDR_SA_LEN */
+#ifdef SOCK_MAXADDRLEN
+ else if (SOCK_MAXADDRLEN < addr_size)
+ log_bad_addlen = true;
+#endif
else if (AF_INET == addr->sa_family)
{
if (sizeof(struct sockaddr_in) > addr_size)
@@ -959,7 +963,7 @@ mhd_daemon_accept_connection (struct MHD_Daemon *restrict daemon)
0,
(size_t) addrlen);
#ifdef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
- addrstorage->ss_len = addrlen;
+ addrstorage->ss_len = (uint8_t) addrlen;
#endif /* HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */
/* Initialise with default values to avoid compiler warnings */