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

Commit 1b047441 authored by Yuanfang Zhang's avatar Yuanfang Zhang
Browse files

coresight: perf: Fix NULL point dereference issue



In the etm_setup_aux(), if no sink is found, then the path is NULL.
If etm_free_aux() is called directly, it will cause null-pointer
dereference. this change clear cpu mask to avoid this issue.

Change-Id: I392c04cb4ac75755a04a0e100450aeb2892e3812
Signed-off-by: default avatarYuanfang Zhang <zhangyuanfang@codeaurora.org>
parent 1180b8e6
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -220,6 +220,8 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
		return NULL;
	INIT_WORK(&event_data->work, free_event_data);

	mask = &event_data->mask;

	/* First get the selected sink from user space. */
	if (event->attr.config2) {
		id = (u32)event->attr.config2;
@@ -228,11 +230,10 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
		sink = coresight_get_enabled_sink(true);
	}

	if (!sink)
	if (!sink) {
		cpumask_clear(mask);
		goto err;

	mask = &event_data->mask;

	}
	/*
	 * Setup the path for each CPU in a trace session. We try to build
	 * trace path for each CPU in the mask. If we don't find an ETM