mirror of https://github.com/torvalds/linux.git
recent patches to add a WARN() when replacing skb dst entry found an
old bug:
WARNING: include/linux/skbuff.h:1165 skb_dst_check_unset include/linux/skbuff.h:1164 [inline]
WARNING: include/linux/skbuff.h:1165 skb_dst_set include/linux/skbuff.h:1210 [inline]
WARNING: include/linux/skbuff.h:1165 nf_reject_fill_skb_dst+0x2a4/0x330 net/ipv4/netfilter/nf_reject_ipv4.c:234
[..]
Call Trace:
nf_send_unreach+0x17b/0x6e0 net/ipv4/netfilter/nf_reject_ipv4.c:325
nft_reject_inet_eval+0x4bc/0x690 net/netfilter/nft_reject_inet.c:27
expr_call_ops_eval net/netfilter/nf_tables_core.c:237 [inline]
..
This is because blamed commit forgot about loopback packets.
Such packets already have a dst_entry attached, even at PRE_ROUTING stage.
Instead of checking hook just check if the skb already has a route
attached to it.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| arp_tables.c | ||
| arpt_mangle.c | ||
| arptable_filter.c | ||
| ip_tables.c | ||
| ipt_ECN.c | ||
| ipt_REJECT.c | ||
| ipt_SYNPROXY.c | ||
| ipt_ah.c | ||
| ipt_rpfilter.c | ||
| iptable_filter.c | ||
| iptable_mangle.c | ||
| iptable_nat.c | ||
| iptable_raw.c | ||
| iptable_security.c | ||
| nf_defrag_ipv4.c | ||
| nf_dup_ipv4.c | ||
| nf_nat_h323.c | ||
| nf_nat_pptp.c | ||
| nf_nat_snmp_basic.asn1 | ||
| nf_nat_snmp_basic_main.c | ||
| nf_reject_ipv4.c | ||
| nf_socket_ipv4.c | ||
| nf_tproxy_ipv4.c | ||
| nft_dup_ipv4.c | ||
| nft_fib_ipv4.c | ||
| nft_reject_ipv4.c | ||