Re: [PATCH v2 1/4] perf tools: Fix memory leak in cmd_kvm()

[email protected] Mon, 03 Aug 2026 13:19:05 +0000
Newsgroups org.kernel.vger.linux-perf-users
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(=
s) to consider:
- [Low] Obsolete dead code and misleading error message left behind after s=
witching to string literals.
--

--- Patch [1]: [PATCH v2 1/4] perf tools: Fix memory leak in cmd_kvm() ---
commit 86f226d29d0e3321d6c203d041f55a455eb36daf
Author: Michalis Niarchos <[email protected]>

perf tools: Fix memory leak in cmd_kvm()

filename may get allocated by get_filename_for_perf_kvm(), but is
never freed. Use string literals to remove the need for freeing.

> diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
> index 394302ebdb161..44c6998f2ee5d 100644
> --- a/tools/perf/builtin-kvm.c
> +++ b/tools/perf/builtin-kvm.c
> @@ -606,11 +606,11 @@ static const char *get_filename_for_perf_kvm(void)
>  	const char *filename;
> =20
>  	if (perf_host && !perf_guest)
> -		filename =3D strdup("perf.data.host");
> +		filename =3D "perf.data.host";
>  	else if (!perf_host && perf_guest)
> -		filename =3D strdup("perf.data.guest");
> +		filename =3D "perf.data.guest";
>  	else
> -		filename =3D strdup("perf.data.kvm");
> +		filename =3D "perf.data.kvm";
> =20
>  	return filename;
>  }

[Severity: Low]
Since this function now returns string literals, it can never return NULL.

Should we also remove the unreachable error handling in cmd_kvm() where
get_filename_for_perf_kvm() is called?

tools/perf/builtin-kvm.c:cmd_kvm() {
    ...
	if (!file_name) {
		file_name =3D get_filename_for_perf_kvm();

		if (!file_name) {
			pr_err("Failed to allocate memory for filename\n");
			return -ENOMEM;
		}
	}
    ...
}

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260803-perf-kvm-f=
[email protected]?part=3D1