]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
lib/, src/: getulong(): Use the usual -1 as an error code
authorAlejandro Colomar <alx@kernel.org>
Fri, 1 Dec 2023 19:33:20 +0000 (20:33 +0100)
committerSerge Hallyn <serge@hallyn.com>
Fri, 5 Jan 2024 22:54:55 +0000 (16:54 -0600)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
lib/getdef.c
lib/getulong.c
lib/idmapping.c
lib/limits.c
lib/rlogin.c
lib/sgetspent.c
lib/shadow.c
lib/subordinateio.c
src/lastlog.c

index 99f8ea5d643f701fd17b21e1be196d7ff5e4c8ab..4d4d4e194b905359c76153af2d62474ecd661461 100644 (file)
@@ -347,7 +347,7 @@ unsigned long getdef_ulong (const char *item, unsigned long dflt)
                return dflt;
        }
 
-       if (getulong (d->value, &val) == 0) {
+       if (getulong(d->value, &val) == -1) {
                fprintf (shadow_logfd,
                         _("configuration error - cannot parse %s value: '%s'"),
                         item, d->value);
index 03d35bf8360d6395f2138e281508917f56cf261a..613c657b49cf2438bf2973603484729a7946d586 100644 (file)
@@ -4,36 +4,33 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
+
 #include <config.h>
 
 #ident "$Id: getlong.c 2763 2009-04-23 09:57:03Z nekral-guest $"
 
 #include <stdlib.h>
 #include <errno.h>
+
 #include "prototypes.h"
 
+
 /*
  * getulong - extract an unsigned long integer provided by the numstr string in *result
  *
  * It supports decimal, hexadecimal or octal representations.
- *
- * Returns 0 on failure, 1 on success.
  */
-int getulong (const char *numstr, /*@out@*/unsigned long *result)
+int
+getulong(const char *numstr, /*@out@*/unsigned long *result)
 {
+       char           *endptr;
        unsigned long  val;
-       char *endptr;
 
        errno = 0;
        val = strtoul(numstr, &endptr, 0);
-       if (    ('\0' == *numstr)
-            || ('\0' != *endptr)
-            || (0 != errno)
-          ) {
-               return 0;
-       }
+       if (('\0' == *numstr) || ('\0' != *endptr) || (0 != errno))
+               return -1;
 
        *result = val;
-       return 1;
+       return 0;
 }
-
index 83ab745bf94a17a8b0abb5e9e3e6f202a717d96f..7454c3d818bc6fc4c2e0429716a3c2bf10217535 100644 (file)
@@ -58,15 +58,15 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv)
        /* Gather up the ranges from the command line */
        mapping = mappings;
        for (idx = 0, argidx = 0; idx < ranges; idx++, argidx += 3, mapping++) {
-               if (!getulong(argv[argidx + 0], &mapping->upper)) {
+               if (getulong(argv[argidx + 0], &mapping->upper) == -1) {
                        free(mappings);
                        return NULL;
                }
-               if (!getulong(argv[argidx + 1], &mapping->lower)) {
+               if (getulong(argv[argidx + 1], &mapping->lower) == -1) {
                        free(mappings);
                        return NULL;
                }
-               if (!getulong(argv[argidx + 2], &mapping->count)) {
+               if (getulong(argv[argidx + 2], &mapping->count) == -1) {
                        free(mappings);
                        return NULL;
                }
index 9c6f1d9a9e97a476cf0656a84d0f7d3498e9e739..37a1676c6ad166af3855261a99aa83b2363a70cc 100644 (file)
@@ -104,7 +104,7 @@ static int set_umask (const char *value)
 {
        unsigned long  mask;
 
-       if (   (getulong (value, &mask) == 0)
+       if (   (getulong(value, &mask) == -1)
            || (mask != (mode_t) mask)) {
                return 0;
        }
@@ -119,7 +119,7 @@ static int check_logins (const char *name, const char *maxlogins)
 {
        unsigned long limit, count;
 
-       if (getulong (maxlogins, &limit) == 0) {
+       if (getulong(maxlogins, &limit) == -1) {
                return 0;
        }
 
@@ -512,7 +512,7 @@ void setup_limits (const struct passwd *info)
                        if (strncmp (cp, "umask=", 6) == 0) {
                                unsigned long  mask;
 
-                               if (   (getulong (cp + 6, &mask) == 0)
+                               if (   (getulong(cp + 6, &mask) == -1)
                                    || (mask != (mode_t) mask)) {
                                        SYSLOG ((LOG_WARN,
                                                 "Can't set umask value for user %s",
index 686f6854601a4d0806950a3b0f54544914a0a6a2..0a48668da43d6136167d360cfe58def610140c9f 100644 (file)
@@ -78,7 +78,7 @@ do_rlogin (const char *remote_host, char *name, size_t namelen, char *term,
                *cp = '\0';
                cp++;
 
-               if (getulong (cp, &remote_speed) == 0) {
+               if (getulong(cp, &remote_speed) == -1) {
                        remote_speed = 9600;
                }
        }
index 12817542126f2ee74c0c8d883809abde64d76d2c..184fbc16d91dbd1dff5cd158f25488d86c2d67ee 100644 (file)
@@ -175,7 +175,7 @@ struct spwd *sgetspent (const char *string)
 
        if (fields[8][0] == '\0') {
                spwd.sp_flag = SHADOW_SP_FLAG_UNSET;
-       } else if (getulong (fields[8], &spwd.sp_flag) == 0) {
+       } else if (getulong(fields[8], &spwd.sp_flag) == -1) {
                return 0;
        }
 
index fca077a9e6c26905fa986ff12595a4666e31d4cd..dac140715e4968c72b5669aeae87d3f9843e0a75 100644 (file)
@@ -305,7 +305,7 @@ static struct spwd *my_sgetspent (const char *string)
        if (fields[8][0] == '\0') {
                spwd.sp_flag = SHADOW_SP_FLAG_UNSET;
        } else {
-               if (getulong (fields[8], &spwd.sp_flag) == 0) {
+               if (getulong(fields[8], &spwd.sp_flag) == -1) {
 #ifdef USE_NIS
                        if (nis_used) {
                                spwd.sp_flag = SHADOW_SP_FLAG_UNSET;
index c8b25e3e2bf9d6a086cb504d2f0a0eaa232b1034..d67d56c91767e9688bff9515877e0f67135bb5a5 100644 (file)
@@ -115,9 +115,9 @@ static void *subordinate_parse (const char *line)
        if (i != SUBID_NFIELDS || *fields[0] == '\0' || *fields[1] == '\0' || *fields[2] == '\0')
                return NULL;
        range.owner = fields[0];
-       if (getulong (fields[1], &range.start) == 0)
+       if (getulong(fields[1], &range.start) == -1)
                return NULL;
-       if (getulong (fields[2], &range.count) == 0)
+       if (getulong(fields[2], &range.count) == -1)
                return NULL;
 
        return &range;
index f96a520c27af4ecaee8609ec8b008dc7faa5939a..e6f38ea76dadcd6346e64d41e3011681e4738407 100644 (file)
@@ -324,7 +324,7 @@ int main (int argc, char **argv)
                        case 'b':
                        {
                                unsigned long inverse_days;
-                               if (getulong (optarg, &inverse_days) == 0) {
+                               if (getulong(optarg, &inverse_days) == -1) {
                                        fprintf (stderr,
                                                 _("%s: invalid numeric argument '%s'\n"),
                                                 Prog, optarg);
@@ -352,7 +352,7 @@ int main (int argc, char **argv)
                        case 't':
                        {
                                unsigned long days;
-                               if (getulong (optarg, &days) == 0) {
+                               if (getulong(optarg, &days) == -1) {
                                        fprintf (stderr,
                                                 _("%s: invalid numeric argument '%s'\n"),
                                                 Prog, optarg);