From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [patch net] net: sched: fix use-after-free in tcf_action_destroy and tcf_del_walker Date: Wed, 13 Sep 2017 09:34:28 -0700 (PDT) Message-ID: <20170913.093428.806129519464331602.davem@davemloft.net> References: <20170913153237.26408-1-jiri@resnulli.us> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, jhs@mojatatu.com, xiyou.wangcong@gmail.com, kubakici@wp.pl, mlxsw@mellanox.com To: jiri@resnulli.us Return-path: Received: from shards.monkeyblade.net ([184.105.139.130]:51746 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751653AbdIMQe3 (ORCPT ); Wed, 13 Sep 2017 12:34:29 -0400 In-Reply-To: <20170913153237.26408-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org List-ID: From: Jiri Pirko Date: Wed, 13 Sep 2017 17:32:37 +0200 > From: Jiri Pirko > > Recent commit d7fb60b9cafb ("net_sched: get rid of tcfa_rcu") removed > freeing in call_rcu, which changed already existing hard-to-hit > race condition into 100% hit: > > [ 598.599825] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030 > [ 598.607782] IP: tcf_action_destroy+0xc0/0x140 > > Or: > > [ 40.858924] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030 > [ 40.862840] IP: tcf_generic_walker+0x534/0x820 > > Fix this by storing the ops and use them directly for module_put call. > > Fixes: a85a970af265 ("net_sched: move tc_action into tcf_common") > Signed-off-by: Jiri Pirko Applied, thanks Jiri.