On Wed, Dec 19, 2018 at 01:18:17PM +0300, Ilya Maximets wrote:
> On 19.12.2018 6:13, Ben Pfaff wrote:
> > strtoull() doesn't necessarily set errno if it finds nothing to parse, but
> > this code didn't check for that case.
> > 
> > Reported-by: Ilya Maximets <[email protected]>
> > Reported-at: 
> > https://mail.openvswitch.org/pipermail/ovs-dev/2018-December/354622.html
> > Signed-off-by: Ben Pfaff <[email protected]>
> > ---
> >  lib/util.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/lib/util.c b/lib/util.c
> > index 66544bff38ea..fcd4e753613e 100644
> > --- a/lib/util.c
> > +++ b/lib/util.c
> > @@ -968,7 +968,7 @@ free:
> >  
> >      errno = 0;
> >      integer = strtoull(s, tail, 0);
> > -    if (errno) {
> > +    if (errno || s == *tail) {
> >          return errno;
> 
> Maybe
>            return errno ? errno : EINVAL;
> 
> ?
> Or something like that.

Ouch, thanks for the correction.

I applied this to master, with that fix.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to