NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/52074: -current npf map directive broken
> The condition in 620 currently is (see if()):
> ia = in_get_ia_psref(ip->ip_src, &psref_ia);
>
> /* Ensure we only send from a valid address. */==>
> if ((ia != NULL || (flags & IP_FORWARDING) == 0) && <<<<!
> (error = ip_ifaddrvalid(ia)) != 0)
> {
> ARPLOG(LOG_ERR,
> "refusing to send from invalid address %s (pid %d)\n",
> ARPLOGADDR(ip->ip_src), curproc->p_pid);
> IP_STATINC(IP_STAT_ODROPPED);
> if (error == 1)
> /*
> * Address exists, but is tentative or detached.
> * We can't send from it because it's invalid,
> * so we drop the packet.
> */
> error = 0;
> else
> error = EADDRNOTAVAIL;
> goto bad;
> }
>
> Proposed fix is to replace the || inf the if with && as this also seems
> to have been the original intention by the author.
Good catch.
Looks like the regression was introduced 7 months ago, as part of the
ip_output.c rev 1.261. Roy, would you like to have a look into this?
--
Mindaugas
Home |
Main Index |
Thread Index |
Old Index