mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] cpupower: Fix NULL pointer dereference on allocation failure
@ 2026-07-04  8:43 Malaya Kumar Rout
  2026-07-16 22:16 ` Shuah Khan
  0 siblings, 1 reply; 2+ messages in thread
From: Malaya Kumar Rout @ 2026-07-04  8:43 UTC (permalink / raw)
  To: linux-kernel, linux-pm
  Cc: mrout, skhan, me, Malaya Kumar Rout, Thomas Renninger,
	Shuah Khan, John B. Wyatt IV, John Kacur, Brahadambal Srinivasan

The bitmask_alloc() function can return NULL if memory allocation fails,
but the code in main() does not check the return values before using the
allocated bitmasks. This can lead to a NULL pointer dereference when
bitmask_setall() or bitmask_parselist() is called with NULL pointers.

Add proper NULL checks after bitmask allocations and exit gracefully with
an error message if allocation fails.

Fixes: 748f0d70087c ("cpupower: Provide online and offline CPU information")
Signed-off-by: Malaya Kumar Rout <malayarout91@gmail.com>
---
 tools/power/cpupower/utils/cpupower.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/power/cpupower/utils/cpupower.c b/tools/power/cpupower/utils/cpupower.c
index 9ec973165af1..8f7b18b8bb43 100644
--- a/tools/power/cpupower/utils/cpupower.c
+++ b/tools/power/cpupower/utils/cpupower.c
@@ -184,6 +184,17 @@ int main(int argc, const char *argv[])
 	online_cpus = bitmask_alloc(sysconf(_SC_NPROCESSORS_CONF));
 	offline_cpus = bitmask_alloc(sysconf(_SC_NPROCESSORS_CONF));
 
+	if (!cpus_chosen || !online_cpus || !offline_cpus) {
+		fprintf(stderr, _("Failed to allocate bitmasks\n"));
+		if (cpus_chosen)
+			bitmask_free(cpus_chosen);
+		if (online_cpus)
+			bitmask_free(online_cpus);
+		if (offline_cpus)
+			bitmask_free(offline_cpus);
+		return EXIT_FAILURE;
+	}
+
 	argc--;
 	argv += 1;
 
-- 
2.54.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] cpupower: Fix NULL pointer dereference on allocation failure
  2026-07-04  8:43 [PATCH] cpupower: Fix NULL pointer dereference on allocation failure Malaya Kumar Rout
@ 2026-07-16 22:16 ` Shuah Khan
  0 siblings, 0 replies; 2+ messages in thread
From: Shuah Khan @ 2026-07-16 22:16 UTC (permalink / raw)
  To: Malaya Kumar Rout, linux-kernel, linux-pm
  Cc: mrout, me, Thomas Renninger, Shuah Khan, John B. Wyatt IV,
	John Kacur, Brahadambal Srinivasan, Shuah Khan

On 7/4/26 02:43, Malaya Kumar Rout wrote:
> The bitmask_alloc() function can return NULL if memory allocation fails,
> but the code in main() does not check the return values before using the
> allocated bitmasks. This can lead to a NULL pointer dereference when
> bitmask_setall() or bitmask_parselist() is called with NULL pointers.
> 
> Add proper NULL checks after bitmask allocations and exit gracefully with
> an error message if allocation fails.
> 
> Fixes: 748f0d70087c ("cpupower: Provide online and offline CPU information")
> Signed-off-by: Malaya Kumar Rout <malayarout91@gmail.com>
> ---
>   tools/power/cpupower/utils/cpupower.c | 11 +++++++++++
>   1 file changed, 11 insertions(+)
> 
> diff --git a/tools/power/cpupower/utils/cpupower.c b/tools/power/cpupower/utils/cpupower.c
> index 9ec973165af1..8f7b18b8bb43 100644
> --- a/tools/power/cpupower/utils/cpupower.c
> +++ b/tools/power/cpupower/utils/cpupower.c
> @@ -184,6 +184,17 @@ int main(int argc, const char *argv[])
>   	online_cpus = bitmask_alloc(sysconf(_SC_NPROCESSORS_CONF));
>   	offline_cpus = bitmask_alloc(sysconf(_SC_NPROCESSORS_CONF));
>   
> +	if (!cpus_chosen || !online_cpus || !offline_cpus) {
> +		fprintf(stderr, _("Failed to allocate bitmasks\n"));
> +		if (cpus_chosen)
> +			bitmask_free(cpus_chosen);
> +		if (online_cpus)
> +			bitmask_free(online_cpus);
> +		if (offline_cpus)
> +			bitmask_free(offline_cpus);
> +		return EXIT_FAILURE;
> +	}
> +
>   	argc--;
>   	argv += 1;
>   

Usually these small allocations don't fail to warrant checks.

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-07-16 22:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-04  8:43 [PATCH] cpupower: Fix NULL pointer dereference on allocation failure Malaya Kumar Rout
2026-07-16 22:16 ` Shuah Khan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®