net/sched: act_pedit: Use kmemdup() to replace kmalloc + memcpy
authorJiapeng Chong <jiapeng.chong@linux.alibaba.com>
Fri, 9 Jun 2023 07:01:17 +0000 (15:01 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 Jun 2023 08:31:09 +0000 (09:31 +0100)
./net/sched/act_pedit.c:245:21-28: WARNING opportunity for kmemdup.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=5478
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Reviewed-by: Pedro Tammela <pctammela@mojatatu.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_pedit.c

index fc945c7e4123291a25d5defef4ca7dcd6f4e10f1..8c4e7fddddbf9c52e8eed09da3bdacb36598a110 100644 (file)
@@ -242,14 +242,12 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
        nparms->tcfp_flags = parm->flags;
        nparms->tcfp_nkeys = parm->nkeys;
 
-       nparms->tcfp_keys = kmalloc(ksize, GFP_KERNEL);
+       nparms->tcfp_keys = kmemdup(parm->keys, ksize, GFP_KERNEL);
        if (!nparms->tcfp_keys) {
                ret = -ENOMEM;
                goto put_chain;
        }
 
-       memcpy(nparms->tcfp_keys, parm->keys, ksize);
-
        for (i = 0; i < nparms->tcfp_nkeys; ++i) {
                u32 offmask = nparms->tcfp_keys[i].offmask;
                u32 cur = nparms->tcfp_keys[i].off;