sched: address a potential NULL pointer dereference in the GRED scheduler.
[ Upstream commit115ef44a98] If kzalloc in gred_init returns a NULL pointer, the code follows the error handling path, invoking gred_destroy. This, in turn, calls gred_offload, where memset could receive a NULL pointer as input, potentially leading to a kernel crash. When table->opt is NULL in gred_init(), gred_change_table_def() is not called yet, so it is not necessary to call ->ndo_setup_tc() in gred_offload(). Signed-off-by: Jun Yang <juny24602@gmail.com> Reviewed-by: Cong Wang <xiyou.wangcong@gmail.com> Fixes:f25c0515c5("net: sched: gred: dynamically allocate tc_gred_qopt_offload") Link: https://patch.msgid.link/20250305154410.3505642-1-juny24602@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0befa32ac3
commit
68896dd501
@@ -913,7 +913,8 @@ static void gred_destroy(struct Qdisc *sch)
|
||||
for (i = 0; i < table->DPs; i++)
|
||||
gred_destroy_vq(table->tab[i]);
|
||||
|
||||
gred_offload(sch, TC_GRED_DESTROY);
|
||||
if (table->opt)
|
||||
gred_offload(sch, TC_GRED_DESTROY);
|
||||
kfree(table->opt);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user