]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix sa_fromprefix for real on BSD.
authorRoy Marples <roy@marples.name>
Thu, 10 Nov 2016 18:35:21 +0000 (18:35 +0000)
committerRoy Marples <roy@marples.name>
Thu, 10 Nov 2016 18:35:21 +0000 (18:35 +0000)
sa.c

diff --git a/sa.c b/sa.c
index f8fabc760c4c01c27adf6013d5b58de11598bf85..26d8e3e671598b149425f4e92baf6da725105d0e 100644 (file)
--- 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