Messages in this thread | | | Subject | Re: [PATCH] cpuidle_set accepts alpha numeric values for idle-set operation | From | Shuah Khan <> | Date | Tue, 5 Jan 2021 11:03:47 -0700 |
| |
On 1/5/21 5:24 AM, Brahadambal Srinivasan wrote: > For both the d and e options in cpuidle_set, an atoi() conversion is > done without checking if the input argument is all numeric. So, an > atoi conversion is done on any character provided as input and the > CPU idle_set operation continues with that integer value, which may > not be what is intended or entirely correct. > > A similar check is present for cpufreq-set already. > > This patch adds a check to see that the idle_set value is all numeric > before doing a string-to-int conversion. > > Signed-off-by: Brahadambal Srinivasan <latha@linux.vnet.ibm.com> > --- > tools/power/cpupower/utils/cpuidle-set.c | 39 +++++++++++++++++++++--- > 1 file changed, 34 insertions(+), 5 deletions(-) > > diff --git a/tools/power/cpupower/utils/cpuidle-set.c b/tools/power/cpupower/utils/cpuidle-set.c > index 46158928f9ad..b3dec48e7141 100644 > --- a/tools/power/cpupower/utils/cpuidle-set.c > +++ b/tools/power/cpupower/utils/cpuidle-set.c > @@ -21,6 +21,19 @@ static struct option info_opts[] = { > { }, > }; > > +int is_number(char *arg) > +{ > + size_t len, i = 0; > + > + len = strlen(arg); > + > + for (i = 0; i < len; i++) { > + if (!isdigit(arg[i])) > + return 0; > + } > + > + return 1; > +} >
Any reason why you can't use isdigit()? Please see isdigit() usages examples in other tools and cpupower itself.
thanks, -- Shuah
thanks, -- Shuah
| |