From: kernel test robot <l...@intel.com> kernel/events/core.c:5925:13-20: WARNING opportunity for memdup_user
Use memdup_user rather than duplicating its implementation This is a little bit restricted to reduce false positives Generated by: scripts/coccinelle/api/memdup_user.cocci CC: Namhyung Kim <namhy...@kernel.org> Reported-by: kernel test robot <l...@intel.com> Signed-off-by: kernel test robot <l...@intel.com> --- url: https://github.com/0day-ci/linux/commits/Namhyung-Kim/perf-core-Sharing-events-with-multiple-cgroups/20210413-124251 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git cface0326a6c2ae5c8f47bd466f07624b3e348a7 core.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -5922,15 +5922,9 @@ static long _perf_ioctl(struct perf_even cgrp_bufsz = nr_cgrps * sizeof(*cgrp_buf); - cgrp_buf = kmalloc(cgrp_bufsz, GFP_KERNEL); - if (cgrp_buf == NULL) - return -ENOMEM; - - if (copy_from_user(cgrp_buf, (u64 __user *)(arg + 8), - cgrp_bufsz)) { - kfree(cgrp_buf); - return -EFAULT; - } + cgrp_buf = memdup_user((u64 __user *)(arg + 8), cgrp_bufsz); + if (IS_ERR(cgrp_buf)) + return PTR_ERR(cgrp_buf); ret = perf_event_attach_cgroup_node(event, nr_cgrps, cgrp_buf);