diff options
author | 2022-12-20 14:31:40 -0800 | |
---|---|---|
committer | 2022-12-27 12:44:01 +0100 | |
commit | 0a041ebca4956292cadfb14a63ace3a9c1dcb0a3 (patch) | |
tree | 4c9aa8bb90c2c1dd90d2701817694411c7f3ab07 /kernel/events | |
parent | perf: Fix use-after-free in error path (diff) | |
download | linux-0a041ebca4956292cadfb14a63ace3a9c1dcb0a3.tar.gz linux-0a041ebca4956292cadfb14a63ace3a9c1dcb0a3.tar.bz2 linux-0a041ebca4956292cadfb14a63ace3a9c1dcb0a3.zip |
perf/core: Call LSM hook after copying perf_event_attr
It passes the attr struct to the security_perf_event_open() but it's
not initialized yet.
Fixes: da97e18458fb ("perf_event: Add support for LSM and SELinux checks")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20221220223140.4020470-1-namhyung@kernel.org
Diffstat (limited to 'kernel/events')
-rw-r--r-- | kernel/events/core.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index 63d674c9b70e..d56328e5080e 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -12321,12 +12321,12 @@ SYSCALL_DEFINE5(perf_event_open, if (flags & ~PERF_FLAG_ALL) return -EINVAL; - /* Do we allow access to perf_event_open(2) ? */ - err = security_perf_event_open(&attr, PERF_SECURITY_OPEN); + err = perf_copy_attr(attr_uptr, &attr); if (err) return err; - err = perf_copy_attr(attr_uptr, &attr); + /* Do we allow access to perf_event_open(2) ? */ + err = security_perf_event_open(&attr, PERF_SECURITY_OPEN); if (err) return err; |