[PATCH v3] UBIFS: replace simple_strtoul() with kstrtoint()
Zhang Zhen
zhenzhang.zhang at huawei.com
Wed May 21 02:00:39 PDT 2014
On 2014/5/21 14:30, Geert Uytterhoeven wrote:
> On Wed, May 21, 2014 at 5:00 AM, Zhang Zhen <zhenzhang.zhang at huawei.com> wrote:
>> @@ -1922,7 +1922,10 @@ static struct ubi_volume_desc *open_ubi(const char *name, int mode)
>> if (!isdigit(name[3]))
>> return ERR_PTR(-EINVAL);
>>
>> - dev = simple_strtoul(name + 3, &endptr, 0);
>> + endptr = name + 3;
>
> As Adrian pointed out, endptr is used later, and it must point to the
> character after the parsed number.
>
Okay, it appears kstrtoint is not suitable to replace the simple_strtoul here.
The first argument of kstrto* can not point to the character after the parsed number.
>> + ret = kstrtoint(endptr, 0, &dev);
>> + if (ret)
>> + return ERR_PTR(-EINVAL);
>>
>> /* ubiY method */
>> if (*endptr == '\0')
>> @@ -1930,7 +1933,10 @@ static struct ubi_volume_desc *open_ubi(const char *name, int mode)
>>
>> /* ubiX_Y method */
>> if (*endptr == '_' && isdigit(endptr[1])) {
>> - vol = simple_strtoul(endptr + 1, &endptr, 0);
>> + endptr = endptr + 1;
>> + ret = kstrtoint(endptr, 0, &vol);
>> + if (ret)
>> + return ERR_PTR(-EINVAL);
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
>
>
More information about the linux-mtd
mailing list