From: Roy Marples Date: Fri, 18 Nov 2016 16:41:01 +0000 (+0000) Subject: Only compare the address part length as the rest maybe garbage. X-Git-Tag: v7.0.0-beta1~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e1dc4c527dffaf0b8a02b1d0ea24922a3f227d6;p=thirdparty%2Fdhcpcd.git Only compare the address part length as the rest maybe garbage. --- diff --git a/sa.c b/sa.c index 2b3ca60e..11fee823 100644 --- 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