Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp2457514rdb; Sun, 3 Dec 2023 18:41:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IGaq3p68yhDypqqvT7+nYep1Q7s39wRsqtkueWJqJDCXw+EUc574BjJ74ngK62oTt3Aot7g X-Received: by 2002:a17:90a:49c9:b0:286:6cc1:5fc9 with SMTP id l9-20020a17090a49c900b002866cc15fc9mr840294pjm.76.1701657685608; Sun, 03 Dec 2023 18:41:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701657685; cv=none; d=google.com; s=arc-20160816; b=ZlUUiqdZ59RTMR7DEIk9rhJAkHmXrGWeOJebHVMVD7SsSXCAhxwo2vgVo28AygQqcG lpkZN5E+lnUu55N7BWHEbRsGgy4FwDKx+gI242kFpOrJiQ8WlV5RWgSyRBpWbmeTlTTY GtHCsys2uo4tnlG/sH5Zj2kjSu+qYflUTndSeozmaSFJnqd5QKJE6rAWTxWv35LDy5LE pYM3WfKBMGxwV2+KTQ4vLfzBZ4oK1HkOG8wRS11YtpjgYEA7qTEr6X6AMZ/2tDTb3UBy AKP4emvKwN5wvB1dJtm53mggl+V6STgpoyq9fmxbVd4K7KncBv1n95hwv5ZHNdmYelzu RVtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=IWq3dYNQ+fbv8XuJ39Zzm2ssuD/eCFy0/0Xk3tUzD50=; fh=k/A8DtRB+1PyGv3hLis3Q+K6aaq62eT5xnvqGAS38ag=; b=AEgGpU20axxaAk0zvI4y0KiIhNbsA2XdUdW/imolqwgNZ6LgzBjN7iNFTuudERZQJ1 ltppOGVnzywNlDRLpCaxlSpp5tt5FX2A7Sz7xopHxXLlA9sdSgjKWVB778mg5ObbWYXY jchIGr3BiAG4kURO+UAn53CkdUiYBjrkDX/mO09/FyxO7jSZ8pfS7MMbSv5RH0BJLCLf ZNDpiJmly7nfb0Ol0voUazxSeTolDa5ZYFhm8Tp5kuK9smIoZ2JVgGS7fzavXR2XEQV1 68k2XQfq5P75bYB+RT1y+pRXeqrzlaBJPNzwM/P7DZMqw6KkrtLbF9biX74Y/LOmsAB6 tgkA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id nd9-20020a17090b4cc900b00285992c80easi7523894pjb.30.2023.12.03.18.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Dec 2023 18:41:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 743F0808BE4C; Sun, 3 Dec 2023 18:41:17 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234330AbjLDClC (ORCPT + 99 others); Sun, 3 Dec 2023 21:41:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229510AbjLDClB (ORCPT ); Sun, 3 Dec 2023 21:41:01 -0500 Received: from zju.edu.cn (mail.zju.edu.cn [61.164.42.155]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 298D5D9; Sun, 3 Dec 2023 18:41:05 -0800 (PST) Received: from localhost.localdomain (unknown [10.190.71.14]) by mail-app4 (Coremail) with SMTP id cS_KCgBHEKcUPG1l68lGAA--.17176S4; Mon, 04 Dec 2023 10:40:30 +0800 (CST) From: Dinghao Liu To: dinghao.liu@zju.edu.cn Cc: Michael Chan , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Sriharsha Basavapatna , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] net: bnxt: fix a potential use-after-free in bnxt_init_tc Date: Mon, 4 Dec 2023 10:40:04 +0800 Message-Id: <20231204024004.8245-1-dinghao.liu@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: cS_KCgBHEKcUPG1l68lGAA--.17176S4 X-Coremail-Antispam: 1UD129KBjvdXoWrZry3uFWfWw1UZw43JF13Jwb_yoWDuFb_Cr 4UXFnxK3yUK3929r1jvr45Z345uFWDXrWxWF1xKFW3try7Gr18W3yvv3Z7Jw15GrWxAFyD Gr1aqryIv34SkjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUb7AFc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AK wVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20x vE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26rxl6s0DM28EF7xvwVC2z280 aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07 x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18 McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr4 1lF7I21c0EjII2zVCS5cI20VAGYxC7MxAIw28IcxkI7VAKI48JMxAIw28IcVCjz48v1sIE Y20_GFWkJr1UJwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI 8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41l IxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIx AIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2 jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7VUbXdbUUUUUU== X-CM-SenderInfo: qrrzjiaqtzq6lmxovvfxof0/1tbiAgoSBmVsUQgQAgAEsa X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Sun, 03 Dec 2023 18:41:17 -0800 (PST) When flow_indr_dev_register() fails, bnxt_init_tc will free bp->tc_info through kfree(). However, the caller function bnxt_init_one() will ignore this failure and call bnxt_shutdown_tc() on failure of bnxt_dl_register(), where a use-after-free happens. Fix this issue by setting bp->tc_info to NULL after kfree(). Fixes: 627c89d00fb9 ("bnxt_en: flow_offload: offload tunnel decap rules via indirect callbacks") Signed-off-by: Dinghao Liu --- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c index 38d89d80b4a9..273c9ba48f09 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c @@ -2075,6 +2075,7 @@ int bnxt_init_tc(struct bnxt *bp) rhashtable_destroy(&tc_info->flow_table); free_tc_info: kfree(tc_info); + bp->tc_info = NULL; return rc; } -- 2.17.1