diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2021-10-12 12:04:00 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-12 12:04:00 -0400 | 
| commit | ba3df8987f987585efeab9dcef839d0122d50a16 (patch) | |
| tree | 21a254c737749b804921baeffba344200e097862 /zebra | |
| parent | 0f96b7e69bac3dcbe4dfee5c8321eaf71f887aa5 (diff) | |
| parent | b7c21fad11d19458ab62202e10401a954cba5e1c (diff) | |
Merge pull request #9686 from idryzhov/fix-nda-lladdr
zebra: fix buffer overflow
Diffstat (limited to 'zebra')
| -rw-r--r-- | zebra/rt_netlink.c | 3 | 
1 files changed, 1 insertions, 2 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 488bca06da..780b601734 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -3744,7 +3744,6 @@ static int netlink_ipneigh_change(struct nlmsghdr *h, int len, ns_id_t ns_id)  	if (tb[NDA_LLADDR]) {  		/* copy LLADDR information */  		l2_len = RTA_PAYLOAD(tb[NDA_LLADDR]); -		memcpy(&mac, RTA_DATA(tb[NDA_LLADDR]), l2_len);  	}  	if (l2_len == IPV4_MAX_BYTELEN || l2_len == 0) {  		union sockunion link_layer_ipv4; @@ -3752,7 +3751,7 @@ static int netlink_ipneigh_change(struct nlmsghdr *h, int len, ns_id_t ns_id)  		if (l2_len) {  			sockunion_family(&link_layer_ipv4) = AF_INET;  			memcpy((void *)sockunion_get_addr(&link_layer_ipv4), -			       &mac, l2_len); +			       RTA_DATA(tb[NDA_LLADDR]), l2_len);  		} else  			sockunion_family(&link_layer_ipv4) = AF_UNSPEC;  		zsend_nhrp_neighbor_notify(  | 
