OSDN Git Service

perf/core: Call LSM hook after copying perf_event_attr
authorNamhyung Kim <namhyung@kernel.org>
Tue, 20 Dec 2022 22:31:40 +0000 (14:31 -0800)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 27 Dec 2022 11:44:01 +0000 (12:44 +0100)
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
kernel/events/core.c

index 63d674c..d56328e 100644 (file)
@@ -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;