summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2018-04-15 11:23:50 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-04-29 07:45:27 +0200
commit19f50d844c5fda5555c38fe8853404491def5c70 (patch)
treee49b6bdf1ada002e2e853e9359707a970d41e560
parentab3fc66b3dc8bcd9e15ce9ed48cde061f564f6ee (diff)
downloadlinux-19f50d844c5fda5555c38fe8853404491def5c70.tar.gz
linux-19f50d844c5fda5555c38fe8853404491def5c70.tar.bz2
linux-19f50d844c5fda5555c38fe8853404491def5c70.zip
perf: Return proper values for user stack errors
commit 78b562fbfa2cf0a9fcb23c3154756b690f4905c1 upstream. Return immediately when we find issue in the user stack checks. The error value could get overwritten by following check for PERF_SAMPLE_REGS_INTR. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: syzkaller-bugs@googlegroups.com Cc: x86@kernel.org Fixes: 60e2364e60e8 ("perf: Add ability to sample machine state on interrupt") Link: http://lkml.kernel.org/r/20180415092352.12403-1-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--kernel/events/core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 9eb7710914fb..af2780655f5b 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7348,9 +7348,9 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
* __u16 sample size limit.
*/
if (attr->sample_stack_user >= USHRT_MAX)
- ret = -EINVAL;
+ return -EINVAL;
else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64)))
- ret = -EINVAL;
+ return -EINVAL;
}
out: