Commit 3bc3d30c authored by Prarit Bhargava's avatar Prarit Bhargava Committed by Andy Shevchenko
Browse files

tools/power/x86/intel-speed-select: Fix memory leak



cpumasks are allocated by calling the alloc_cpu_mask() function and are
never free'd.  They should be free'd after the commands have run.

Fix the memory leaks by calling free_cpu_set().

Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent 522586a9
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -603,6 +603,10 @@ static int isst_fill_platform_info(void)

	close(fd);

	if (isst_platform_info.api_version > supported_api_ver) {
		printf("Incompatible API versions; Upgrade of tool is required\n");
		return -1;
	}
	return 0;
}

@@ -1528,6 +1532,7 @@ static void cmdline(int argc, char **argv)
{
	int opt;
	int option_index = 0;
	int ret;

	static struct option long_options[] = {
		{ "cpu", required_argument, 0, 'c' },
@@ -1589,13 +1594,14 @@ static void cmdline(int argc, char **argv)
	set_max_cpu_num();
	set_cpu_present_cpu_mask();
	set_cpu_target_cpu_mask();
	isst_fill_platform_info();
	if (isst_platform_info.api_version > supported_api_ver) {
		printf("Incompatible API versions; Upgrade of tool is required\n");
		exit(0);
	}
	ret = isst_fill_platform_info();
	if (ret)
		goto out;

	process_command(argc, argv);
out:
	free_cpu_set(present_cpumask);
	free_cpu_set(target_cpumask);
}

int main(int argc, char **argv)