diff options
| author | Roy Marples <roy@marples.name> | 2016-11-10 18:35:21 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2016-11-10 18:35:21 +0000 |
| commit | 9acf8f0a53934cd98a2645bce6de531d34a0aca9 (patch) | |
| tree | f668a646ba1a989ded4ef2d941353194497cfac7 | |
| parent | 1f7c845e537ad295450b2d6da707fe71fe443670 (diff) | |
| download | dhcpcd-9acf8f0a53934cd98a2645bce6de531d34a0aca9.tar.xz | |
Fix sa_fromprefix for real on BSD.
| -rw-r--r-- | sa.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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 |
