diff options
Diffstat (limited to 'src/microhttpd/daemon.c')
-rw-r--r-- | src/microhttpd/daemon.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index 905844c7..47fe742d 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c | |||
@@ -330,9 +330,10 @@ MHD_ip_addr_to_key (const struct sockaddr *addr, | |||
330 | sizeof(*key)); | 330 | sizeof(*key)); |
331 | 331 | ||
332 | /* IPv4 addresses */ | 332 | /* IPv4 addresses */ |
333 | if (sizeof (struct sockaddr_in) == addrlen) | 333 | if (AF_INET == addr->sa_family) |
334 | { | 334 | { |
335 | const struct sockaddr_in *addr4 = (const struct sockaddr_in *) addr; | 335 | const struct sockaddr_in *addr4 = (const struct sockaddr_in *) addr; |
336 | mhd_assert (sizeof (struct sockaddr_in) <= addrlen); | ||
336 | 337 | ||
337 | key->family = AF_INET; | 338 | key->family = AF_INET; |
338 | memcpy (&key->addr.ipv4, | 339 | memcpy (&key->addr.ipv4, |
@@ -343,9 +344,10 @@ MHD_ip_addr_to_key (const struct sockaddr *addr, | |||
343 | 344 | ||
344 | #if HAVE_INET6 | 345 | #if HAVE_INET6 |
345 | /* IPv6 addresses */ | 346 | /* IPv6 addresses */ |
346 | if (sizeof (struct sockaddr_in6) == addrlen) | 347 | if (AF_INET6 == addr->sa_family) |
347 | { | 348 | { |
348 | const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6 *) addr; | 349 | const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6 *) addr; |
350 | mhd_assert (sizeof (struct sockaddr_in6) <= addrlen); | ||
349 | 351 | ||
350 | key->family = AF_INET6; | 352 | key->family = AF_INET6; |
351 | memcpy (&key->addr.ipv6, | 353 | memcpy (&key->addr.ipv6, |