Messages in this thread |  | | Date | Tue, 08 Aug 2017 12:26:03 -0700 | From | Saravana Kannan <> | Subject | Re: [PATCH] devfreq: add error check for sscanf in userspace governor |
| |
On 08/07/2017 11:56 PM, Pavan Kondeti wrote: > Hi Santosh, > > On Mon, Aug 7, 2017 at 6:36 PM, Santosh Mardi <gsantosh@codeaurora.org> wrote: >> store_freq function of devfreq userspace governor >> executes further, even if error is returned from sscanf, >> this will result in setting up wrong frequency value. >> >> Add proper error check to bail out if any error is returned. >> >> Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org> >> --- >> drivers/devfreq/governor_userspace.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/devfreq/governor_userspace.c b/drivers/devfreq/governor_userspace.c >> index 77028c2..1d0c9cc 100644 >> --- a/drivers/devfreq/governor_userspace.c >> +++ b/drivers/devfreq/governor_userspace.c >> @@ -53,12 +53,15 @@ static ssize_t store_freq(struct device *dev, struct device_attribute *attr, >> mutex_lock(&devfreq->lock); >> data = devfreq->data; >> >> - sscanf(buf, "%lu", &wanted); >> + err = sscanf(buf, "%lu", &wanted);
Also, we could just use kstroul().
>> + if (err != 1) >> + goto out; > > You can save this goto statement by moving this sscanf checking to > before taking the mutex. > >> data->user_frequency = wanted; >> data->valid = true; >> err = update_devfreq(devfreq); >> if (err == 0) >> err = count; >> +out: >> mutex_unlock(&devfreq->lock); >> return err; >> } >> -- >> 1.9.1 >>
-Saravana
-- Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
|  |