Messages in this thread | | | Subject | Re: [PATCH net-next] net: sched: cls_u32: use struct_size() helper | From | "Gustavo A. R. Silva" <> | Date | Thu, 23 May 2019 18:22:29 -0500 |
| |
Hi all,
Friendly ping:
Who can take this?
Thanks -- Gustavo
On 5/1/19 11:23 AM, Gustavo A. R. Silva wrote: > Make use of the struct_size() helper instead of an open-coded version > in order to avoid any potential type mistakes, in particular in the > context in which this code is being used. > > So, replace code of the following form: > > sizeof(*s) + s->nkeys*sizeof(struct tc_u32_key) > > with: > > struct_size(s, keys, s->nkeys) > > This code was detected with the help of Coccinelle. > > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> > --- > net/sched/cls_u32.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c > index 04e9ef088535..4b8710a266cc 100644 > --- a/net/sched/cls_u32.c > +++ b/net/sched/cls_u32.c > @@ -847,7 +847,7 @@ static struct tc_u_knode *u32_init_knode(struct net *net, struct tcf_proto *tp, > /* Similarly success statistics must be moved as pointers */ > new->pcpu_success = n->pcpu_success; > #endif > - memcpy(&new->sel, s, sizeof(*s) + s->nkeys*sizeof(struct tc_u32_key)); > + memcpy(&new->sel, s, struct_size(s, keys, s->nkeys)); > > if (tcf_exts_init(&new->exts, net, TCA_U32_ACT, TCA_U32_POLICE)) { > kfree(new); >
| |