summaryrefslogtreecommitdiffstats
path: root/net/sched/act_bpf.c
diff options
context:
space:
mode:
authorYueHaibing <yuehaibing@huawei.com>2018-07-28 12:38:06 +0200
committerDavid S. Miller <davem@davemloft.net>2018-07-29 22:20:16 +0200
commit3f6bcc5162a1ba4e99e867364919168c1d821308 (patch)
treec1ca5d85eedebab28a692756e04d128affe78d07 /net/sched/act_bpf.c
parentcls_bpf: Use kmemdup instead of duplicating it in cls_bpf_prog_from_ops (diff)
downloadlinux-3f6bcc5162a1ba4e99e867364919168c1d821308.tar.xz
linux-3f6bcc5162a1ba4e99e867364919168c1d821308.zip
act_bpf: Use kmemdup instead of duplicating it in tcf_bpf_init_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/sched/act_bpf.c')
-rw-r--r--net/sched/act_bpf.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/net/sched/act_bpf.c b/net/sched/act_bpf.c
index 06f743d8ed41..6203eb075c9a 100644
--- a/net/sched/act_bpf.c
+++ b/net/sched/act_bpf.c
@@ -196,12 +196,10 @@ static int tcf_bpf_init_from_ops(struct nlattr **tb, struct tcf_bpf_cfg *cfg)
if (bpf_size != nla_len(tb[TCA_ACT_BPF_OPS]))
return -EINVAL;
- bpf_ops = kzalloc(bpf_size, GFP_KERNEL);
+ bpf_ops = kmemdup(nla_data(tb[TCA_ACT_BPF_OPS]), bpf_size, GFP_KERNEL);
if (bpf_ops == NULL)
return -ENOMEM;
- memcpy(bpf_ops, nla_data(tb[TCA_ACT_BPF_OPS]), bpf_size);
-
fprog_tmp.len = bpf_num_ops;
fprog_tmp.filter = bpf_ops;