util: check for < 0 explicitly in safe_atou
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 12 Sep 2018 22:18:16 +0000 (08:18 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 12 Sep 2018 22:32:23 +0000 (08:32 +1000)
The previous check only worked if sizeof(long) > sizeof(int). Rather than be
fancy about it, just cast to a signed long, check for negativity and continue
based on that.

Fixes #137

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/libinput-util.h

index ff8d56f..360e390 100644 (file)
@@ -538,7 +538,7 @@ safe_atou_base(const char *str, unsigned int *val, int base)
        if (*str != '\0' && *endptr != '\0')
                return false;
 
-       if (v > UINT_MAX)
+       if ((long)v < 0)
                return false;
 
        *val = v;