when pf_test returns something but PF_PASS, set error to EACCES
authorhenning <henning@openbsd.org>
Thu, 23 Jun 2016 09:08:56 +0000 (09:08 +0000)
committerhenning <henning@openbsd.org>
Thu, 23 Jun 2016 09:08:56 +0000 (09:08 +0000)
commitf844a72095ba0e2d43089bd31d53287c50ddd7f0
treec22712949df68ba2702d0980f0db5e780ea9e68c
parentad2e9a1bf4acabfc55babf268237630d88985ffc
when pf_test returns something but PF_PASS, set error to EACCES
instead of EHOSTUNREACH. On the latter, ip_forward can generate undesired
icmp errors - either pf generates those itself (block return), or there
shouldn't be any.
Bizarrely enough, ip_forward has EACCES handling with a comment specifically
pointing to packets blocked by pf, but the code in ip_output used EHOSTUNREACH
from day #1 on.
found & analyzed by Kristof Provost <kp at FreeBSD>, discussed at BSDcan
ok mpi millert
sys/netinet/ip_output.c