Messages in this thread |  | | From | Len Brown <> | | Date | Tue, 25 Nov 2025 12:23:05 -0500 | | Subject | Re: [PATCH] tools/power x86_energy_perf_policy: Fix potential NULL pointer dereference |
| |
I've applied these two patches, thanks.
BTW. we generally use the linux-pm list for patches to these utilities rather than lkml -- as we manage the patches there via patchwork.
-Len
On Sat, Nov 22, 2025 at 10:17 AM Malaya Kumar Rout <mrout@redhat.com> wrote: > > In err_on_hypervisor(), strstr() is called to search for "flags" in the > buffer, but the return value is not checked before being used in pointer > arithmetic (flags - buffer). If strstr() returns NULL because "flags" is > not found in /proc/cpuinfo, this will cause undefined behavior and likely > a crash. > > Add a NULL check after the strstr() call and handle the error appropriately > by cleaning up resources and reporting a meaningful error message. > > Signed-off-by: Malaya Kumar Rout <mrout@redhat.com> > --- > .../x86/x86_energy_perf_policy/x86_energy_perf_policy.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c b/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c > index 884a4c746f32..be2a9c285a85 100644 > --- a/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c > +++ b/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c > @@ -660,6 +660,11 @@ void err_on_hypervisor(void) > } > > flags = strstr(buffer, "flags"); > + if (!flags) { > + fclose(cpuinfo); > + free(buffer); > + err(1, "Failed to find 'flags' in /proc/cpuinfo"); > + } > rewind(cpuinfo); > fseek(cpuinfo, flags - buffer, SEEK_SET); > if (!fgets(buffer, 4096, cpuinfo)) { > -- > 2.51.0 > >
-- Len Brown, Intel Open Source Technology Center
|  |