diff options
author | Dinghao Liu <dinghao.liu@zju.edu.cn> | 2023-12-04 10:40:04 +0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-12-05 19:43:42 -0800 |
commit | d007caaaf052f82ca2340d4c7b32d04a3f5dbf3f (patch) | |
tree | 8d2fc6fd72ca2563d61e20d9dc2e2b2c2b3147f4 | |
parent | a61f46e1102545cf1fb5f19992288265362cefb0 (diff) | |
download | linux-d007caaaf052f82ca2340d4c7b32d04a3f5dbf3f.tar.gz linux-d007caaaf052f82ca2340d4c7b32d04a3f5dbf3f.tar.bz2 linux-d007caaaf052f82ca2340d4c7b32d04a3f5dbf3f.zip |
net: bnxt: fix a potential use-after-free in bnxt_init_tc
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 <dinghao.liu@zju.edu.cn>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Link: https://lore.kernel.org/r/20231204024004.8245-1-dinghao.liu@zju.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 1 |
1 files changed, 1 insertions, 0 deletions
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 @@ destroy_flow_table: rhashtable_destroy(&tc_info->flow_table); free_tc_info: kfree(tc_info); + bp->tc_info = NULL; return rc; } |