tools/power turbostat: Use strtoul() for iteration parsing

Replace strtod() with strtoul() and check errno for -n/-N options, since
num_iterations and header_iterations are unsigned long counters. Reject
zero and conversion errors; negative inputs wrap to large positive values
per standard unsigned semantics.

Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Kaushlendra Kumar
2025-12-08 08:38:04 +05:30
committed by Len Brown
parent a2b4d0f8bf
commit 8e5c0cc326

View File

@@ -11536,18 +11536,20 @@ void cmdline(int argc, char **argv)
/* Parsed earlier */
break;
case 'n':
num_iterations = strtod(optarg, NULL);
num_iterations = strtoul(optarg, NULL, 0);
errno = 0;
if (num_iterations <= 0) {
fprintf(outf, "iterations %d should be positive number\n", num_iterations);
if (errno || num_iterations == 0) {
fprintf(outf, "invalid iteration count: %s\n", optarg);
exit(2);
}
break;
case 'N':
header_iterations = strtod(optarg, NULL);
header_iterations = strtoul(optarg, NULL, 0);
errno = 0;
if (header_iterations <= 0) {
fprintf(outf, "iterations %d should be positive number\n", header_iterations);
if (errno || header_iterations == 0) {
fprintf(outf, "invalid header iteration count: %s\n", optarg);
exit(2);
}
break;