CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2017/11/12 18:24:09

Modified files:
        sys/net        : pf.c 

Log message:
remove the ability for pf_ouraddr to say that a packet is forwarded.

having pf_ouraddr say a packet is forwarded let's in_ouraddr avoid
doing a route lookup for the packet. however, because it is forwarded
we need to do a route lookup in ip_output anyway to know where it
goes.

in_ouraddr does a bunch of extra checks on the result of the route
lookup that ip_output does not do though, including special handling
of ip_directedbroadcast and M_BCAST. if you have directed broadcast
enabled and do not do these checks, the ethernet layer will loop a
copy of broadcast packets back into the stack recursively which
can blow the thread stack in the kernel.

discussed with jmatthew@, sashan@, and henning@
ok mpi@

diagnosing this led to the enabling of a guard page on amd64 kernel
stacks, which was necessary for correctly identifying this problem.

Reply via email to