From 2778dc35d40e7e84c134ca4cab1376fa58208f80 Mon Sep 17 00:00:00 2001 From: Len Brown Date: Wed, 6 May 2026 10:00:00 -0400 Subject: [PATCH] x86_energy_perf_policy: Cleanup: Check fseek() in VM path Add return value validation for fseek() and ensure consistent resource cleanup on all error paths in err_on_hypervisor(). Fixes: 0936cdfbb527 ("tools/power x86_energy_perf_policy: Input/output error in a VM") Assisted-by: GitHub-Copilot:Claude-Sonnet-4.6 Reviewed-by: Andy Shevchenko Signed-off-by: Len Brown --- .../x86/x86_energy_perf_policy/x86_energy_perf_policy.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 0a67b6f5381c..b7515e815f76 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 @@ -799,7 +799,11 @@ void err_on_hypervisor(void) err(1, "Failed to find 'flags' in /proc/cpuinfo"); } rewind(cpuinfo); - fseek(cpuinfo, flags - buffer, SEEK_SET); + if (fseek(cpuinfo, flags - buffer, SEEK_SET) != 0) { + fclose(cpuinfo); + free(buffer); + err(1, "Failed to seek in /proc/cpuinfo"); + } if (!fgets(buffer, 4096, cpuinfo)) { fclose(cpuinfo); free(buffer);