Message ID | 20211209021346.2004600-1-jiasheng@iscas.ac.cn (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: sched: gred: potential dereference of null pointer | expand |
On Thu, 9 Dec 2021 10:13:46 +0800 Jiasheng Jiang wrote: > The return value of kzalloc() needs to be checked. > To avoid use of null pointer in gred_change_vq() in case > of the failure of alloc. > > Fixes: 869aa41044b0 ("sch_gred: prefer GFP_KERNEL allocations") > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> I don't see how. Please explain in more detail. gred_change_vq() gets a pointer to a pointer and checks if its values is NULL. > diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c > index f4132dc25ac0..c0d355281baf 100644 > --- a/net/sched/sch_gred.c > +++ b/net/sched/sch_gred.c > @@ -697,6 +697,8 @@ static int gred_change(struct Qdisc *sch, struct nlattr *opt, > } > > prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL); > + if (!prealloc) > + return -ENOMEM; > sch_tree_lock(sch); > > err = gred_change_vq(sch, ctl->DP, ctl, prio, stab, max_P, &prealloc,
diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c index f4132dc25ac0..c0d355281baf 100644 --- a/net/sched/sch_gred.c +++ b/net/sched/sch_gred.c @@ -697,6 +697,8 @@ static int gred_change(struct Qdisc *sch, struct nlattr *opt, } prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL); + if (!prealloc) + return -ENOMEM; sch_tree_lock(sch); err = gred_change_vq(sch, ctl->DP, ctl, prio, stab, max_P, &prealloc,
The return value of kzalloc() needs to be checked. To avoid use of null pointer in gred_change_vq() in case of the failure of alloc. Fixes: 869aa41044b0 ("sch_gred: prefer GFP_KERNEL allocations") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- net/sched/sch_gred.c | 2 ++ 1 file changed, 2 insertions(+)