]> granicus.if.org Git - shadow/commitdiff
Simplify getulong
authorSebastian Krahmer <krahmer@suse.com>
Wed, 3 Aug 2016 16:51:07 +0000 (11:51 -0500)
committerSerge Hallyn <serge@hallyn.com>
Wed, 3 Aug 2016 16:51:07 +0000 (11:51 -0500)
Use strtoul to read an unsigned long, rather than reading
a signed long long and casting it.

https://bugzilla.suse.com/show_bug.cgi?id=979282

lib/getulong.c

index 61579cae8edaf11d67e323ccf4f7286031eb4e39..08d2c1a8d6d47459b37d93e5295ed6424d1532bf 100644 (file)
  */
 int getulong (const char *numstr, /*@out@*/unsigned long int *result)
 {
-       long long int val;
+       unsigned long int val;
        char *endptr;
 
        errno = 0;
-       val = strtoll (numstr, &endptr, 0);
+       val = strtoul (numstr, &endptr, 0);
        if (    ('\0' == *numstr)
             || ('\0' != *endptr)
             || (ERANGE == errno)
-            /*@+ignoresigns@*/
-            || (val != (unsigned long int)val)
-            /*@=ignoresigns@*/
           ) {
                return 0;
        }
 
-       *result = (unsigned long int)val;
+       *result = val;
        return 1;
 }