summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2018-04-06 20:26:56 +0000
committerBrooks Davis <brooks@FreeBSD.org>2018-04-06 20:26:56 +0000
commite7fdc72e9573b4762519aaf0336ab8817c09a36e (patch)
treef11ca82f7d8257ba33610000141ee90ca0516fcc
parent54095bf4284f7917d4d34b14d1629a33fe0c4ab1 (diff)
Notes
-rw-r--r--sys/net/if.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index b8f13f73620c4..1d8849bffc159 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -3191,7 +3191,13 @@ again:
continue;
addrs++;
if (sa->sa_len <= sizeof(*sa)) {
- ifr.ifr_addr = *sa;
+ if (sa->sa_len < sizeof(*sa)) {
+ memset(&ifr.ifr_ifru.ifru_addr, 0,
+ sizeof(ifr.ifr_ifru.ifru_addr));
+ memcpy(&ifr.ifr_ifru.ifru_addr, sa,
+ sa->sa_len);
+ } else
+ ifr.ifr_ifru.ifru_addr = *sa;
sbuf_bcat(sb, &ifr, sizeof(ifr));
max_len += sizeof(ifr);
} else {