Skip to content

Commit 2870695

Browse files
committed
Merge branch 'bc/maint-daemon-sans-ss-family' into maint
* bc/maint-daemon-sans-ss-family: daemon.c: avoid accessing ss_family member of struct sockaddr_storage
2 parents e3163c7 + 3aff874 commit 2870695

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

daemon.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -590,14 +590,17 @@ static int execute(struct sockaddr *addr)
590590
static int addrcmp(const struct sockaddr_storage *s1,
591591
const struct sockaddr_storage *s2)
592592
{
593-
if (s1->ss_family != s2->ss_family)
594-
return s1->ss_family - s2->ss_family;
595-
if (s1->ss_family == AF_INET)
593+
const struct sockaddr *sa1 = (const struct sockaddr*) s1;
594+
const struct sockaddr *sa2 = (const struct sockaddr*) s2;
595+
596+
if (sa1->sa_family != sa2->sa_family)
597+
return sa1->sa_family - sa2->sa_family;
598+
if (sa1->sa_family == AF_INET)
596599
return memcmp(&((struct sockaddr_in *)s1)->sin_addr,
597600
&((struct sockaddr_in *)s2)->sin_addr,
598601
sizeof(struct in_addr));
599602
#ifndef NO_IPV6
600-
if (s1->ss_family == AF_INET6)
603+
if (sa1->sa_family == AF_INET6)
601604
return memcmp(&((struct sockaddr_in6 *)s1)->sin6_addr,
602605
&((struct sockaddr_in6 *)s2)->sin6_addr,
603606
sizeof(struct in6_addr));

0 commit comments

Comments
 (0)