From: Roy Marples Date: Thu, 10 Nov 2016 18:35:21 +0000 (+0000) Subject: Fix sa_fromprefix for real on BSD. X-Git-Tag: v7.0.0-beta1~115 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9acf8f0a53934cd98a2645bce6de531d34a0aca9;p=thirdparty%2Fdhcpcd.git Fix sa_fromprefix for real on BSD. --- diff --git a/sa.c b/sa.c index f8fabc76..26d8e3e6 100644 --- a/sa.c +++ b/sa.c @@ -264,6 +264,7 @@ sa_toprefix(const struct sockaddr *sa) union sa_ss ss; sa_inprefix = true; + memset(&ss, 0, sizeof(ss)); ss.sa.sa_family = sa->sa_family; sa_fromprefix(&ss.sa, prefix); assert(sa_cmp(sa, &ss.sa) == 0); @@ -285,7 +286,7 @@ sa_fromprefix(struct sockaddr *sa, int prefix) case AF_INET: max_prefix = 32; #ifdef HAVE_SA_LEN - sa->sa_len = sizeof(struct in_addr); + sa->sa_len = sizeof(struct sockaddr_in); #endif break; #endif @@ -293,7 +294,7 @@ sa_fromprefix(struct sockaddr *sa, int prefix) case AF_INET6: max_prefix = 128; #ifdef HAVE_SA_LEN - sa->sa_len = sizeof(struct in6_addr); + sa->sa_len = sizeof(struct sockaddr_in6); #endif break; #endif