Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 540804b5 authored by Stephane Eranian's avatar Stephane Eranian Committed by Ingo Molnar
Browse files

perf_events: Fix invalid pointer when pid is invalid



This patch fixes an error in perf_event_open() when the pid
provided by the user is invalid. find_lively_task_by_vpid()
does not return NULL on error but an error code. Without the
fix the error code was silently passed to find_get_context()
which would eventually cause a invalid pointer dereference.

Signed-off-by: default avatarStephane Eranian <eranian@google.com>
Cc: peterz@infradead.org
Cc: paulus@samba.org
Cc: davem@davemloft.net
Cc: fweisbec@gmail.com
Cc: perfmon2-devel@lists.sf.net
Cc: eranian@gmail.com
Cc: robert.richter@amd.com
LKML-Reference: <4ca9a5d1.e8e9d80a.3dbb.ffff8f2e@mx.google.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent d6dad199
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -5616,8 +5616,13 @@ SYSCALL_DEFINE5(perf_event_open,
		}
		}
	}
	}


	if (pid != -1)
	if (pid != -1) {
		task = find_lively_task_by_vpid(pid);
		task = find_lively_task_by_vpid(pid);
		if (IS_ERR(task)) {
			err = PTR_ERR(task);
			goto err_group_fd;
		}
	}


	/*
	/*
	 * Get the target context (task or percpu):
	 * Get the target context (task or percpu):