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: 0936cdfbb5 ("tools/power x86_energy_perf_policy: Input/output error in a VM")
Assisted-by: GitHub-Copilot:Claude-Sonnet-4.6
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Len Brown 2026-05-06 10:00:00 -04:00
parent 029db3fc5e
commit 2778dc35d4

View File

@ -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);