diff options
author | YueHaibing <yuehaibing@huawei.com> | 2018-07-28 12:35:15 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-29 22:19:49 +0200 |
commit | f9562fa4a5750d097f4468c0a7fc9a4e0d2dfdc3 (patch) | |
tree | 45af5ede207e18d8b79b1af68f476ac2f3b831f3 /net | |
parent | act_pedit: remove unnecessary semicolon (diff) | |
download | linux-f9562fa4a5750d097f4468c0a7fc9a4e0d2dfdc3.tar.xz linux-f9562fa4a5750d097f4468c0a7fc9a4e0d2dfdc3.zip |
cls_bpf: Use kmemdup instead of duplicating it in cls_bpf_prog_from_ops
Replace calls to kmalloc followed by a memcpy with a direct call to
kmemdup.
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/sched/cls_bpf.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index 66e0ac9811f9..fa6fe2fe0f32 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -349,12 +349,10 @@ static int cls_bpf_prog_from_ops(struct nlattr **tb, struct cls_bpf_prog *prog) if (bpf_size != nla_len(tb[TCA_BPF_OPS])) return -EINVAL; - bpf_ops = kzalloc(bpf_size, GFP_KERNEL); + bpf_ops = kmemdup(nla_data(tb[TCA_BPF_OPS]), bpf_size, GFP_KERNEL); if (bpf_ops == NULL) return -ENOMEM; - memcpy(bpf_ops, nla_data(tb[TCA_BPF_OPS]), bpf_size); - fprog_tmp.len = bpf_num_ops; fprog_tmp.filter = bpf_ops; |