diff options
author | vize <vize> | 2007-08-10 06:25:20 +0000 |
---|---|---|
committer | vize <vize> | 2007-08-10 06:25:20 +0000 |
commit | 068fd77cff0ce09b6390641abd84fc09a89c49db (patch) | |
tree | 0a71721ce90997f1fe0c45d677f3625dbd890369 /zebra/rt_netlink.c | |
parent | ed6ef902df72cc8267e274ed515a47af52c9fed7 (diff) | |
download | quagga-068fd77cff0ce09b6390641abd84fc09a89c49db.tar.bz2 quagga-068fd77cff0ce09b6390641abd84fc09a89c49db.tar.xz |
Use the proper field length for the peer's address (netlink_interface_addr)
Diffstat (limited to 'zebra/rt_netlink.c')
-rw-r--r-- | zebra/rt_netlink.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 3b602c45..5b592f94 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -647,12 +647,8 @@ netlink_interface_addr (struct sockaddr_nl *snl, struct nlmsghdr *h) addr = (tb[IFA_LOCAL] ? RTA_DATA(tb[IFA_LOCAL]) : NULL); /* is there a peer address? */ - /* N.B. I do not understand why the memcmp compares 4 bytes regardless - of address family, but this is exactly how it appears in - print_addrinfo. I wonder if it should be RTA_PAYLOAD(tb[IFA_ADDRESS]) - instead of 4... */ if (tb[IFA_ADDRESS] && - memcmp(RTA_DATA(tb[IFA_ADDRESS]), RTA_DATA(tb[IFA_LOCAL]), 4)) + memcmp(RTA_DATA(tb[IFA_ADDRESS]), RTA_DATA(tb[IFA_LOCAL]), RTA_PAYLOAD(tb[IFA_ADDRESS]))) { broad = RTA_DATA(tb[IFA_ADDRESS]); SET_FLAG (flags, ZEBRA_IFA_PEER); |