[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 00599) bug in addrconf.c



addrconf.c from the June 11th snapshot in function inet6_addr_diff() sets
addrlen to 4. This means it'll only
 consider the first 4 bytes when looking for source addresses and may pick
the wrong one when there are more
than one address matching in the first 4 bytes, but differing in later
bytes.
     Minimal fix:

*** addrconf.c.OLD  Mon Jun 25 15:00:50 2001
--- addrconf.c.NEW  Mon Jun 25 14:13:00 2001
***************
*** 191,197 ****
  {
     __u32 *a1 = token1;
     __u32 *a2 = token2;
!    int addrlen = 4;
     int i;

     addrlen >>= 2;
--- 191,197 ----
  {
     __u32 *a1 = token1;
     __u32 *a2 = token2;
!    int addrlen = 16;
     int i;

     addrlen >>= 2;

                                         +-DLS