summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorJulian Anastasov <ja@ssi.bg>2011-06-18 07:53:59 +0000
committerDavid S. Miller <davem@davemloft.net>2011-06-29 05:47:32 -0700
commited6e4ef836d425bc35e33bf20fcec95e68203afa (patch)
treebccb0b3262b5885324f27c08858abe9c5bdce26e /crypto
parent353e5c9abd900de3d1a40925386ffe4abf76111e (diff)
downloadlinux-stable-ed6e4ef836d425bc35e33bf20fcec95e68203afa.tar.gz
linux-stable-ed6e4ef836d425bc35e33bf20fcec95e68203afa.tar.bz2
linux-stable-ed6e4ef836d425bc35e33bf20fcec95e68203afa.zip
netfilter: Fix ip_route_me_harder triggering ip_rt_bug
Avoid creating input routes with ip_route_me_harder. It does not work for locally generated packets. Instead, restrict sockets to provide valid saddr for output route (or unicast saddr for transparent proxy). For other traffic allow saddr to be unicast or local but if callers forget to check saddr type use 0 for the output route. The resulting handling should be: - REJECT TCP: - in INPUT we can provide addr_type = RTN_LOCAL but better allow rejecting traffic delivered with local route (no IP address => use RTN_UNSPEC to allow also RTN_UNICAST). - FORWARD: RTN_UNSPEC => allow RTN_LOCAL/RTN_UNICAST saddr, add fix to ignore RTN_BROADCAST and RTN_MULTICAST - OUTPUT: RTN_UNSPEC - NAT, mangle, ip_queue, nf_ip_reroute: RTN_UNSPEC in LOCAL_OUT - IPVS: - use RTN_LOCAL in LOCAL_OUT and FORWARD after SNAT to restrict saddr to be local Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'crypto')
0 files changed, 0 insertions, 0 deletions