Re: [PATCH 2/3] debugfs: move to new strtobool

From: Jonathan Cameron
Date: Wed Apr 20 2011 - 05:31:36 EST


On 04/19/11 21:30, Ryan Mallon wrote:
> On 04/19/2011 11:43 PM, Jonathan Cameron wrote:
>> No functional changes requires that we eat errors from strtobool.
>> If people want to not do this, then it should be fixed at a later date.
>
> May as well fix it now or it will get forgotten about. A second patch on
> top of this can fix the bug.
What worries me about this 'fix' is that it may well break some 'interesting'
bit of userspace code. It would count as a userspace api change, be it
a fairly minor one.

Greg, do you thing it's worth returning an error on a non bool value?
>
> ~Ryan
>
>> V2: Simplification suggested by Rusty Russell removes the need for
>> additional variable ret.
>>
>> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxx>
>> ---
>> fs/debugfs/file.c | 17 ++++-------------
>> 1 files changed, 4 insertions(+), 13 deletions(-)
>>
>> diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
>> index 89d394d..568304d 100644
>> --- a/fs/debugfs/file.c
>> +++ b/fs/debugfs/file.c
>> @@ -429,25 +429,16 @@ static ssize_t write_file_bool(struct file *file, const char __user *user_buf,
>> {
>> char buf[32];
>> int buf_size;
>> + bool bv;
>> u32 *val = file->private_data;
>>
>> buf_size = min(count, (sizeof(buf)-1));
>> if (copy_from_user(buf, user_buf, buf_size))
>> return -EFAULT;
>>
>> - switch (buf[0]) {
>> - case 'y':
>> - case 'Y':
>> - case '1':
>> - *val = 1;
>> - break;
>> - case 'n':
>> - case 'N':
>> - case '0':
>> - *val = 0;
>> - break;
>> - }
>> -
>> + if (strtobool(buf, &bv) == 0)
>> + *val = bv;
>> +
>> return count;
>> }
>>
>
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/