From: Gustavo A. R. Silva Date: Wed, 29 Sep 2021 20:17:18 +0000 (-0500) Subject: net: sched: Use struct_size() helper in kvmalloc() X-Git-Tag: v6.6.17~8953^2~312 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=129291980f4901ae68ee3ba4344bdc38cf5f800d;p=platform%2Fkernel%2Flinux-rpi.git net: sched: Use struct_size() helper in kvmalloc() Make use of the struct_size() helper instead of an open-coded version, in order to avoid any potential type mistakes or integer overflows that, in the worst scenario, could lead to heap overflows. Link: https://github.com/KSPP/linux/issues/160 Signed-off-by: Gustavo A. R. Silva Link: https://lore.kernel.org/r/20210929201718.GA342296@embeddedor Signed-off-by: Jakub Kicinski --- diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index 0c345e4..ecbb10d 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c @@ -785,7 +785,7 @@ static int get_dist_table(struct Qdisc *sch, struct disttable **tbl, if (!n || n > NETEM_DIST_MAX) return -EINVAL; - d = kvmalloc(sizeof(struct disttable) + n * sizeof(s16), GFP_KERNEL); + d = kvmalloc(struct_size(d, table, n), GFP_KERNEL); if (!d) return -ENOMEM;