summaryrefslogtreecommitdiff
path: root/zebra/kernel_socket.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-01-22 08:57:16 -0500
committerGitHub <noreply@github.com>2019-01-22 08:57:16 -0500
commit518515a1e36142ba5ec4a616526004578ccb8881 (patch)
tree04be17b939767c5d87f4e4689761945fbdfe9efb /zebra/kernel_socket.c
parent62b6a7e149fa35d0edbece65bf21c7d13e0c78cd (diff)
parent1583f8f5ad87c3506e4b49add613c153117d5205 (diff)
Merge pull request #3641 from opensourcerouting/rsock-ipv6-fix
zebra: fix a few problems with routing socket
Diffstat (limited to 'zebra/kernel_socket.c')
-rw-r--r--zebra/kernel_socket.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index f290d456d6..f3561cc19d 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -274,7 +274,7 @@ size_t _rta_get(caddr_t sap, void *destp, size_t destlen, bool checkaf)
if (sa->sa_family == AF_LINK) {
sdl = (struct sockaddr_dl *)sa;
if (sdl->sdl_index == 0 || sdl->sdl_nlen == 0)
- copylen = sizeof(*sdl) - sizeof(sdl->sdl_data);
+ copylen = destlen;
}
if (copylen > destlen) {
@@ -994,7 +994,7 @@ static int rtm_read_mesg(struct rt_msghdr *rtm, union sockunion *dest,
pnt += rta_get(pnt, gate, sizeof(*gate));
break;
case RTA_NETMASK:
- pnt += rta_get(pnt, mask, sizeof(*mask));
+ pnt += rta_getattr(pnt, mask, sizeof(*mask));
break;
case RTA_IFP:
pnt += rta_getsdlname(pnt, ifname, ifnlen);