]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Only compare the address part length as the rest maybe garbage.
authorRoy Marples <roy@marples.name>
Fri, 18 Nov 2016 16:41:01 +0000 (16:41 +0000)
committerRoy Marples <roy@marples.name>
Fri, 18 Nov 2016 16:41:01 +0000 (16:41 +0000)
sa.c

diff --git a/sa.c b/sa.c
index 2b3ca60e2ec2bba83b3e254234288bbb8116fdf8..11fee823916d666f8d6c1f06b51d718021e76b3b 100644 (file)
--- a/sa.c
+++ b/sa.c
@@ -392,6 +392,7 @@ sa_cmp(const struct sockaddr *sa1, const struct sockaddr *sa2)
                offset = offsetof(struct sockaddr_in, sin_addr);
 #ifdef HAVE_SA_LEN
                len -= offset;
+               len = MIN(len, sizeof(struct in_addr));
 #else
                len = sizeof(struct in_addr);
 #endif
@@ -402,6 +403,7 @@ sa_cmp(const struct sockaddr *sa1, const struct sockaddr *sa2)
                offset = offsetof(struct sockaddr_in6, sin6_addr);
 #ifdef HAVE_SA_LEN
                len -= offset;
+               len = MIN(len, sizeof(struct in6_addr));
 #else
                len = sizeof(struct in6_addr);
 #endif