David Ahern
bdb06cbf77
net: Fix panic in icmp_route_lookup
Andrey reported a panic:
[ 7249.865507] BUG: unable to handle kernel pointer dereference at 000000b4
[ 7249.865559] IP: [<c16afeca>] icmp_route_lookup+0xaa/0x320
[ 7249.865598] *pdpt = 0000000030f7f001 *pde = 0000000000000000
[ 7249.865637] Oops: 0000 [#1]
...
[ 7249.866811] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
4.3.0-999-generic #201509220155
[ 7249.866876] Hardware name: MSI MS-7250/MS-7250, BIOS 080014 08/02/2006
[ 7249.866916] task: c1a5ab00 ti: c1a52000 task.ti: c1a52000
[ 7249.866949] EIP: 0060:[<c16afeca>] EFLAGS: 00210246 CPU: 0
[ 7249.866981] EIP is at icmp_route_lookup+0xaa/0x320
[ 7249.867012] EAX: 00000000 EBX: f483ba48 ECX: 00000000 EDX: f2e18a00
[ 7249.867045] ESI: 000000c0 EDI: f483ba70 EBP: f483b9ec ESP: f483b974
[ 7249.867077] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 7249.867108] CR0: 8005003b CR2: 000000b4 CR3: 36ee07c0 CR4: 000006f0
[ 7249.867141] Stack:
[ 7249.867165] 320310ee 00000000 00000042 320310ee 00000000 c1aeca00
f3920240 f0c69180
[ 7249.867268] f483ba04 f855058b a89b66cd f483ba44 f8962f4b 00000000
e659266c f483ba54
[ 7249.867361] 8004753c f483ba5c f8962f4b f2031140 000003c1 ffbd8fa0
c16b0e00 00000064
[ 7249.867448] Call Trace:
[ 7249.867494] [<f855058b>] ? e1000_xmit_frame+0x87b/0xdc0 [e1000e]
[ 7249.867534] [<f8962f4b>] ? tcp_in_window+0xeb/0xb10 [nf_conntrack]
[ 7249.867576] [<f8962f4b>] ? tcp_in_window+0xeb/0xb10 [nf_conntrack]
[ 7249.867615] [<c16b0e00>] ? icmp_send+0xa0/0x380
[ 7249.867648] [<c16b102f>] icmp_send+0x2cf/0x380
[ 7249.867681] [<f89c8126>] nf_send_unreach+0xa6/0xc0 [nf_reject_ipv4]
[ 7249.867714] [<f89cd0da>] reject_tg+0x7a/0x9f [ipt_REJECT]
[ 7249.867746] [<f88c29a7>] ipt_do_table+0x317/0x70c [ip_tables]
[ 7249.867780] [<f895e0a6>] ? __nf_conntrack_find_get+0x166/0x3b0
[nf_conntrack]
[ 7249.867838] [<f895eea8>] ? nf_conntrack_in+0x398/0x600 [nf_conntrack]
[ 7249.867889] [<f84c0035>] iptable_filter_hook+0x35/0x80 [iptable_filter]
[ 7249.867933] [<c16776a1>] nf_iterate+0x71/0x80
[ 7249.867970] [<c1677715>] nf_hook_slow+0x65/0xc0
[ 7249.868002] [<c1681811>] __ip_local_out_sk+0xc1/0xd0
[ 7249.868034] [<c1680f30>] ? ip_forward_options+0x1a0/0x1a0
[ 7249.868066] [<c1681836>] ip_local_out_sk+0x16/0x30
[ 7249.868097] [<c1684054>] ip_send_skb+0x14/0x80
[ 7249.868129] [<c16840f4>] ip_push_pending_frames+0x34/0x40
[ 7249.868163] [<c16844a2>] ip_send_unicast_reply+0x282/0x310
[ 7249.868196] [<c16a0863>] tcp_v4_send_reset+0x1b3/0x380
[ 7249.868227] [<c16a1b63>] tcp_v4_rcv+0x323/0x990
[ 7249.868257] [<c16776a1>] ? nf_iterate+0x71/0x80
[ 7249.868289] [<c167dc2b>] ip_local_deliver_finish+0x8b/0x230
[ 7249.868322] [<c167df4c>] ip_local_deliver+0x4c/0xa0
[ 7249.868353] [<c167dba0>] ? ip_rcv_finish+0x390/0x390
[ 7249.868384] [<c167d88c>] ip_rcv_finish+0x7c/0x390
[ 7249.868415] [<c167e280>] ip_rcv+0x2e0/0x420
...
Prior to the VRF change the oif was not set in the flow struct, so the
VRF support should really have only added the vrf_master_ifindex lookup.
Fixes: 613d09b30f ("net: Use VRF device index for lookups on TX")
Cc: Andrey Melnikov <temnota.am@gmail.com>
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
2015-09-25 21:44:02 -07:00 |
| .. |
|
netfilter
|
netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled
|
2015-09-02 16:28:06 -07:00 |
|
af_inet.c
|
net: Make table id type u32
|
2015-09-01 14:32:44 -07:00 |
|
ah4.c
|
ah4: Fix error return in ah_input().
|
2015-08-25 13:38:50 -07:00 |
|
arp.c
|
ipv4: send arp replies to the correct tunnel
|
2015-09-24 14:31:36 -07:00 |
|
cipso_ipv4.c
|
ipv4: coding style: comparison for inequality with NULL
|
2015-04-03 12:11:15 -04:00 |
|
datagram.c
|
net: Set sk_txhash from a random number
|
2015-07-29 22:44:04 -07:00 |
|
devinet.c
|
net/ipv4: suppress NETDEV_UP notification on address lifetime update
|
2015-07-28 23:38:13 -07:00 |
|
esp4.c
|
esp4: Switch to new AEAD interface
|
2015-05-28 11:23:20 +08:00 |
|
fib_frontend.c
|
net: Make table id type u32
|
2015-09-01 14:32:44 -07:00 |
|
fib_lookup.h
|
ipv4: consider TOS in fib_select_default
|
2015-07-24 22:46:11 -07:00 |
|
fib_rules.c
|
net: ipv6: use common fib_default_rule_pref
|
2015-09-09 14:19:50 -07:00 |
|
fib_semantics.c
|
net: Make table id type u32
|
2015-09-01 14:32:44 -07:00 |
|
fib_trie.c
|
net: Fix vti use case with oif in dst lookups
|
2015-09-17 16:36:34 -07:00 |
|
fou.c
|
fou: reject IPv6 config
|
2015-08-29 13:07:54 -07:00 |
|
gre_demux.c
|
gre: Remove support for sharing GRE protocol hook.
|
2015-08-10 14:03:54 -07:00 |
|
gre_offload.c
|
ipv4: coding style: comparison for inequality with NULL
|
2015-04-03 12:11:15 -04:00 |
|
icmp.c
|
net: Fix panic in icmp_route_lookup
|
2015-09-25 21:44:02 -07:00 |
|
igmp.c
|
IGMP: Inhibit reports for local multicast groups
|
2015-08-28 13:28:47 -07:00 |
|
inet_connection_sock.c
|
inet: fix races in reqsk_queue_hash_req()
|
2015-09-21 16:32:29 -07:00 |
|
inet_diag.c
|
net: inet_diag: always export IPV6_V6ONLY sockopt for listening sockets
|
2015-07-10 23:25:24 -07:00 |
|
inet_fragment.c
|
inet: frags: remove INET_FRAG_EVICTED and use list_evictor for the test
|
2015-07-26 21:00:15 -07:00 |
|
inet_hashtables.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2015-07-23 00:41:16 -07:00 |
|
inet_lro.c
|
|
|
|
inet_timewait_sock.c
|
tcp/dccp: fix timewait races in timer handling
|
2015-09-21 16:32:29 -07:00 |
|
inetpeer.c
|
net: Add helper function to compare inetpeer addresses
|
2015-08-28 13:32:36 -07:00 |
|
ip_forward.c
|
ip: reject too-big defragmented DF-skb when forwarding
|
2015-05-25 00:08:48 -04:00 |
|
ip_fragment.c
|
net: Add support for VRFs to inetpeer cache
|
2015-08-28 13:32:36 -07:00 |
|
ip_gre.c
|
ip_tunnels: record IP version in tunnel info
|
2015-08-29 13:07:54 -07:00 |
|
ip_input.c
|
dst: Metadata destinations
|
2015-07-21 10:39:05 -07:00 |
|
ip_options.c
|
ipv4: coding style: comparison for inequality with NULL
|
2015-04-03 12:11:15 -04:00 |
|
ip_output.c
|
net: Use VRF index for oif in ip_send_unicast_reply
|
2015-08-13 22:43:21 -07:00 |
|
ip_sockglue.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2015-06-24 02:58:51 -07:00 |
|
ip_tunnel.c
|
ip_gre: Add support to collect tunnel metadata.
|
2015-08-10 14:03:54 -07:00 |
|
ip_tunnel_core.c
|
lwtunnel: remove source and destination UDP port config option
|
2015-09-24 14:31:37 -07:00 |
|
ip_vti.c
|
ip_vti/ip6_vti: Preserve skb->mark after rcv_cb call
|
2015-05-28 06:23:32 +02:00 |
|
ipcomp.c
|
|
|
|
ipconfig.c
|
net: ipv4: increase dhcp inter device timeout
|
2015-08-12 16:40:22 -07:00 |
|
ipip.c
|
ip_gre: Add support to collect tunnel metadata.
|
2015-08-10 14:03:54 -07:00 |
|
ipmr.c
|
net: ipv6: use common fib_default_rule_pref
|
2015-09-09 14:19:50 -07:00 |
|
Kconfig
|
geneve: Consolidate Geneve functionality in single module.
|
2015-08-27 15:42:48 -07:00 |
|
Makefile
|
geneve: Consolidate Geneve functionality in single module.
|
2015-08-27 15:42:48 -07:00 |
|
netfilter.c
|
netfilter: don't use module_init/exit in core IPV4 code
|
2015-06-16 14:12:34 -04:00 |
|
ping.c
|
ipv6: Nonlocal bind
|
2015-07-09 21:09:10 -07:00 |
|
proc.c
|
net: track success and failure of TCP PMTU probing
|
2015-07-21 22:36:33 -07:00 |
|
protocol.c
|
|
|
|
raw.c
|
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
|
2015-04-13 18:18:05 -04:00 |
|
route.c
|
net: Fix behaviour of unreachable, blackhole and prohibit routes
|
2015-09-20 21:45:08 -07:00 |
|
syncookies.c
|
tcp: get_cookie_sock() consolidation
|
2015-06-07 15:19:52 -07:00 |
|
sysctl_net_ipv4.c
|
IGMP: Inhibit reports for local multicast groups
|
2015-08-28 13:28:47 -07:00 |
|
tcp.c
|
tcp: fix slow start after idle vs TSO/GSO
|
2015-08-25 11:22:50 -07:00 |
|
tcp_bic.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_cdg.c
|
tcp: do not slow start when cwnd equals ssthresh
|
2015-07-09 14:22:52 -07:00 |
|
tcp_cong.c
|
tcp: use dctcp if enabled on the route to the initiator
|
2015-08-31 12:34:00 -07:00 |
|
tcp_cubic.c
|
tcp_cubic: do not set epoch_start in the future
|
2015-09-17 22:35:07 -07:00 |
|
tcp_dctcp.c
|
net: tcp: dctcp_update_alpha() fixes.
|
2015-06-10 23:28:33 -07:00 |
|
tcp_diag.c
|
sock_diag: implement a get_info handler for inet
|
2015-06-15 19:49:22 -07:00 |
|
tcp_fastopen.c
|
tcp: Do not call tcp_fastopen_reset_cipher from interrupt context
|
2015-06-23 02:38:10 -07:00 |
|
tcp_highspeed.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_htcp.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_hybla.c
|
tcp: do not slow start when cwnd equals ssthresh
|
2015-07-09 14:22:52 -07:00 |
|
tcp_illinois.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_input.c
|
tcp: use dctcp if enabled on the route to the initiator
|
2015-08-31 12:34:00 -07:00 |
|
tcp_ipv4.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2015-08-13 16:23:11 -07:00 |
|
tcp_lp.c
|
|
|
|
tcp_memcontrol.c
|
|
|
|
tcp_metrics.c
|
net: Add helper function to compare inetpeer addresses
|
2015-08-28 13:32:36 -07:00 |
|
tcp_minisocks.c
|
tcp/dccp: fix timewait races in timer handling
|
2015-09-21 16:32:29 -07:00 |
|
tcp_offload.c
|
tcp: reserve tcp_skb_mss() to tcp stack
|
2015-06-11 16:33:10 -07:00 |
|
tcp_output.c
|
tcp: add proper TS val into RST packets
|
2015-09-23 14:24:07 -07:00 |
|
tcp_probe.c
|
|
|
|
tcp_scalable.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_timer.c
|
tcp: do not export tcp_init_xmit_timers()
|
2015-07-09 21:44:38 -07:00 |
|
tcp_vegas.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_vegas.h
|
tcp: prepare CC get_info() access from getsockopt()
|
2015-04-29 17:10:38 -04:00 |
|
tcp_veno.c
|
tcp: add tcp_in_slow_start helper
|
2015-07-09 14:22:52 -07:00 |
|
tcp_westwood.c
|
tcp_westwood: fix tcp_westwood_info()
|
2015-05-05 19:50:09 -04:00 |
|
tcp_yeah.c
|
|
|
|
tunnel4.c
|
|
|
|
udp.c
|
net: Fix vti use case with oif in dst lookups
|
2015-09-17 16:36:34 -07:00 |
|
udp_diag.c
|
sock_diag: specify info_size per inet protocol
|
2015-06-15 19:49:22 -07:00 |
|
udp_impl.h
|
|
|
|
udp_offload.c
|
ipv4: coding style: comparison for inequality with NULL
|
2015-04-03 12:11:15 -04:00 |
|
udp_tunnel.c
|
tunnel: introduce udp_tun_rx_dst()
|
2015-08-27 15:42:47 -07:00 |
|
udplite.c
|
|
|
|
xfrm4_input.c
|
netfilter: Pass socket pointer down through okfn().
|
2015-04-07 15:25:55 -04:00 |
|
xfrm4_mode_beet.c
|
|
|
|
xfrm4_mode_transport.c
|
|
|
|
xfrm4_mode_tunnel.c
|
|
|
|
xfrm4_output.c
|
netfilter: Pass socket pointer down through okfn().
|
2015-04-07 15:25:55 -04:00 |
|
xfrm4_policy.c
|
net: Fix vti use case with oif in dst lookups
|
2015-09-17 16:36:34 -07:00 |
|
xfrm4_protocol.c
|
|
|
|
xfrm4_state.c
|
|
|
|
xfrm4_tunnel.c
|
|
|