diff options
Diffstat (limited to 'zebra')
| -rw-r--r-- | zebra/ChangeLog | 5 | ||||
| -rw-r--r-- | zebra/rt_netlink.c | 6 | 
2 files changed, 6 insertions, 5 deletions
| diff --git a/zebra/ChangeLog b/zebra/ChangeLog index 9bd775e9..f6dea442 100644 --- a/zebra/ChangeLog +++ b/zebra/ChangeLog @@ -1,3 +1,8 @@ +2007-08-10  Emmanuel Vize <emmanuel.vize@6wind.com> + +	* rt_netlink.c: (netlink_interface_addr) Use the appropriate field length for the address +          (acknowledge Andy's comment). +  2007-08-06  Denis Ovsienko  	* zebra_rib.c: (general) Add extra debug logging for RIB and 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); | 
