]> granicus.if.org Git - sudo/commitdiff
use strtol, not strtoul since not everyone has not strtoul
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sun, 10 Oct 1999 21:21:22 +0000 (21:21 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sun, 10 Oct 1999 21:21:22 +0000 (21:21 +0000)
defaults.c

index c10b48b602a08e61598000f3f0a8648d4ca900d8..bde4823fa47d61271d9525d03c453b3fe7b47780 100644 (file)
@@ -547,16 +547,16 @@ store_int(val, def, op)
     int op;
 {
     char *endp;
-    unsigned long ul;
+    long l;
 
     if (op == FALSE) {
        def->sd_un.ival = 0;
     } else {
-       ul = strtoul(val, &endp, 10);
-       if (*endp != '\0')
+       l = strtol(val, &endp, 10);
+       if (*endp != '\0' || l < 0)
            return(FALSE);
-       /* XXX - should check against UINT_MAX */
-       def->sd_un.ival = (unsigned int)ul;
+       /* XXX - should check against INT_MAX */
+       def->sd_un.ival = (unsigned int)l;
     }
     return(TRUE);
 }
@@ -642,15 +642,15 @@ store_mode(val, def, op)
     int op;
 {
     char *endp;
-    unsigned long ul;
+    long l;
 
     if (op == FALSE) {
        def->sd_un.mode = 0777;
     } else {
-       ul = strtoul(val, &endp, 8);
-       if (*endp != '\0' || ul >= 0777)
+       l = strtol(val, &endp, 8);
+       if (*endp != '\0' || l < 0 || l >= 0777)
            return(FALSE);
-       def->sd_un.mode = (mode_t)ul;
+       def->sd_un.mode = (mode_t)l;
     }
     return(TRUE);
 }