Messages in this thread |  | | Date | Wed, 18 Feb 2015 00:20:45 +0100 | Subject | Re: [PATCH] lib/kstrtox.c Stop parsing integer on overflow | From | Richard Weinberger <> |
| |
On Mon, Feb 16, 2015 at 7:48 PM, Anshul Garg <aksgarg1989@gmail.com> wrote: > From: Anshul Garg <aksgarg1989@gmail.com> > > While converting string representation to integer > break the loop if overflow is detected. > > Signed-off-by: Anshul Garg <aksgarg1989@gmail.com> > --- > lib/kstrtox.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/lib/kstrtox.c b/lib/kstrtox.c > index ec8da78..6f30209 100644 > --- a/lib/kstrtox.c > +++ b/lib/kstrtox.c > @@ -70,8 +70,10 @@ unsigned int _parse_integer(const char *s, unsigned int base, unsigned long long > * it in the max base we support (16) > */ > if (unlikely(res & (~0ull << 60))) { > - if (res > div_u64(ULLONG_MAX - val, base)) > + if (res > div_u64(ULLONG_MAX - val, base)) { > overflow = 1; > + break;
This changes the behaviour as described at the function description. Did you double check that all users of that function can deal with that?
> + } > } > res = res * base + val; > rv++; > -- > 1.7.9.5 > > > --- > This email has been checked for viruses by Avast antivirus software. > http://www.avast.com > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
-- Thanks, //richard
|  |