Xin Long
b9eeaa30e4
tipc: add NULL pointer check before calling kfree_rcu
...
[ Upstream commit 42dec1dbe38239cf91cc1f4df7830c66276ced37 ]
Unlike kfree(p), kfree_rcu(p, rcu) won't do NULL pointer check. When
tipc_nametbl_remove_publ returns NULL, the panic below happens:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000068
RIP: 0010:__call_rcu+0x1d/0x290
Call Trace:
<IRQ>
tipc_publ_notify+0xa9/0x170 [tipc]
tipc_node_write_unlock+0x8d/0x100 [tipc]
tipc_node_link_down+0xae/0x1d0 [tipc]
tipc_node_check_dest+0x3ea/0x8f0 [tipc]
? tipc_disc_rcv+0x2c7/0x430 [tipc]
tipc_disc_rcv+0x2c7/0x430 [tipc]
? tipc_rcv+0x6bb/0xf20 [tipc]
tipc_rcv+0x6bb/0xf20 [tipc]
? ip_route_input_slow+0x9cf/0xb10
tipc_udp_recv+0x195/0x1e0 [tipc]
? tipc_udp_is_known_peer+0x80/0x80 [tipc]
udp_queue_rcv_skb+0x180/0x460
udp_unicast_rcv_skb.isra.56+0x75/0x90
__udp4_lib_rcv+0x4ce/0xb90
ip_local_deliver_finish+0x11c/0x210
ip_local_deliver+0x6b/0xe0
? ip_rcv_finish+0xa9/0x410
ip_rcv+0x273/0x362
Fixes: 97ede29e80ee ("tipc: convert name table read-write lock to RCU")
Reported-by: Li Shuang <shuali@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-09-21 07:12:41 +02:00
..
2018-10-10 08:52:04 +02:00
2019-08-04 09:34:51 +02:00
2019-05-16 19:45:17 +02:00
2019-04-27 09:33:59 +02:00
2019-04-27 09:33:59 +02:00
2019-06-22 08:18:25 +02:00
2019-08-04 09:34:39 +02:00
2019-08-04 09:34:53 +02:00
2019-09-21 07:12:37 +02:00
2018-09-05 09:18:34 +02:00
2019-07-10 09:56:33 +02:00
2019-03-23 08:44:18 +01:00
2019-09-21 07:12:39 +02:00
2018-09-19 22:48:58 +02:00
2019-04-03 06:23:25 +02:00
2018-02-25 11:03:38 +01:00
2018-07-22 14:25:54 +02:00
2019-02-20 10:13:15 +01:00
2017-02-18 16:39:27 +01:00
2019-03-23 08:44:31 +01:00
2019-02-08 11:25:32 +01:00
2019-09-21 07:12:41 +02:00
2019-09-21 07:12:38 +02:00
2017-05-25 14:30:13 +02:00
2018-09-15 09:40:40 +02:00
2018-11-10 07:41:35 -08:00
2019-09-16 08:13:35 +02:00
2019-08-11 12:20:46 +02:00
2015-10-07 04:27:43 -07:00
2019-06-22 08:18:25 +02:00
2019-06-11 12:24:06 +02:00
2019-09-06 10:18:17 +02:00
2018-09-09 20:04:32 +02:00
2018-03-11 16:19:47 +01:00
2019-09-06 10:18:13 +02:00
2018-10-20 09:52:36 +02:00
2018-08-09 12:19:28 +02:00
2019-08-04 09:34:54 +02:00
2019-08-04 09:34:54 +02:00
2019-04-27 09:33:54 +02:00
2019-09-16 08:13:36 +02:00
2019-03-23 08:44:34 +01:00
2019-06-11 12:24:12 +02:00
2018-05-16 10:06:51 +02:00
2019-04-03 06:23:25 +02:00
2018-04-13 19:50:23 +02:00
2019-09-21 07:12:39 +02:00
2019-09-21 07:12:40 +02:00
2019-05-16 19:44:44 +02:00
2016-06-24 10:18:16 -07:00
2019-09-21 07:12:41 +02:00
2019-03-23 08:44:31 +01:00
2019-02-23 09:05:13 +01:00
2015-08-09 22:43:52 -07:00
2019-09-06 10:18:17 +02:00
2019-03-23 08:44:30 +01:00
2019-09-16 08:13:35 +02:00
2019-01-13 10:05:28 +01:00
2018-02-25 11:03:37 +01:00
2015-09-29 20:40:32 -07:00
2019-03-23 08:44:21 +01:00
2016-09-15 08:27:50 +02:00