No point in using the variable for half of the check.

OK?

diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index e65eeb0c2ac..d88969be617 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -1025,24 +1025,24 @@ nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp)
        case SIOCGNBRINFO_IN6:
        {
                struct llinfo_nd6 *ln;
                struct in6_addr nb_addr = nbi->addr; /* make local for safety */
                time_t expire;
 
                NET_LOCK_SHARED();
                /*
                 * XXX: KAME specific hack for scoped addresses
                 *      XXXX: for other scopes than link-local?
                 */
-               if (IN6_IS_ADDR_LINKLOCAL(&nbi->addr) ||
-                   IN6_IS_ADDR_MC_LINKLOCAL(&nbi->addr)) {
+               if (IN6_IS_ADDR_LINKLOCAL(&nb_addr) ||
+                   IN6_IS_ADDR_MC_LINKLOCAL(&nb_addr)) {
                        u_int16_t *idp = (u_int16_t *)&nb_addr.s6_addr[2];
 
                        if (*idp == 0)
                                *idp = htons(ifp->if_index);
                }
 
                rt = nd6_lookup(&nb_addr, 0, ifp, ifp->if_rdomain);
                if (rt == NULL ||
                    (ln = (struct llinfo_nd6 *)rt->rt_llinfo) == NULL) {
                        rtfree(rt);
                        NET_UNLOCK_SHARED();

Reply via email to