Commit b85114fc authored by Dan Carpenter's avatar Dan Carpenter Committed by Yuan Can
Browse files

rtla/osnoise: Prevent NULL dereference in error handling

stable inclusion
from stable-v6.6.48
commit 753f1745146e03abd17eec8eee95faffc96d743d
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAOY19
CVE: CVE-2024-45002

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=753f1745146e03abd17eec8eee95faffc96d743d

--------------------------------

commit 90574d2a675947858b47008df8d07f75ea50d0d0 upstream.

If the "tool->data" allocation fails then there is no need to call
osnoise_free_top() and, in fact, doing so will lead to a NULL dereference.

Cc: stable@vger.kernel.org
Cc: John Kacur <jkacur@redhat.com>
Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
Cc: Clark Williams <williams@redhat.com>
Fixes: 1eceb2fc ("rtla/osnoise: Add osnoise top mode")
Link: https://lore.kernel.org/f964ed1f-64d2-4fde-ad3e-708331f8f358@stanley.mountain


Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
parent 497bb858
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -624,8 +624,10 @@ struct osnoise_tool *osnoise_init_top(struct osnoise_top_params *params)
		return NULL;

	tool->data = osnoise_alloc_top(nr_cpus);
	if (!tool->data)
		goto out_err;
	if (!tool->data) {
		osnoise_destroy_tool(tool);
		return NULL;
	}

	tool->params = params;

@@ -633,11 +635,6 @@ struct osnoise_tool *osnoise_init_top(struct osnoise_top_params *params)
				   osnoise_top_handler, NULL);

	return tool;

out_err:
	osnoise_free_top(tool->data);
	osnoise_destroy_tool(tool);
	return NULL;
}

static int stop_tracing;