From: Alejandro Colomar Date: Fri, 1 Dec 2023 22:10:06 +0000 (+0100) Subject: lib/, src/: getrange(): Use the usual -1 as an error code X-Git-Tag: 4.15.0-rc1~53 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea253cb2753188de4c17be3208e0677b0425a8fb;p=thirdparty%2Fshadow.git lib/, src/: getrange(): Use the usual -1 as an error code Signed-off-by: Alejandro Colomar --- diff --git a/lib/getrange.c b/lib/getrange.c index 40c2f32c3..44d2ffbd7 100644 --- a/lib/getrange.c +++ b/lib/getrange.c @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-3-Clause */ + #include #ident "$Id: $" @@ -14,6 +15,7 @@ #include "defines.h" #include "prototypes.h" + /* * Parse a range and indicate if the range is valid. * Valid ranges are in the form: @@ -21,32 +23,27 @@ * - -> max=long !has_min has_max * - -> min=long has_min !has_max * - -> min=long1 max=long2 has_min has_max - * - * If the range is valid, getrange returns 1. - * If the range is not valid, getrange returns 0. */ -int getrange (const char *range, - unsigned long *min, bool *has_min, - unsigned long *max, bool *has_max) +int +getrange(const char *range, + unsigned long *min, bool *has_min, + unsigned long *max, bool *has_max) { char *endptr; unsigned long n; - if (NULL == range) { - return 0; - } + if (NULL == range) + return -1; if ('-' == range[0]) { - if (!isdigit(range[1])) { - /* invalid */ - return 0; - } + if (!isdigit(range[1])) + return -1; + errno = 0; n = strtoul(&range[1], &endptr, 10); - if (('\0' != *endptr) || (0 != errno)) { - /* invalid */ - return 0; - } + if (('\0' != *endptr) || (0 != errno)) + return -1; + /* - */ *has_min = false; *has_max = true; @@ -54,10 +51,9 @@ int getrange (const char *range, } else { errno = 0; n = strtoul(range, &endptr, 10); - if (endptr == range || 0 != errno) { - /* invalid */ - return 0; - } + if (endptr == range || 0 != errno) + return -1; + switch (*endptr) { case '\0': /* */ @@ -74,28 +70,24 @@ int getrange (const char *range, *has_max = false; *min = n; } else if (!isdigit (*endptr)) { - /* invalid */ - return 0; + return -1; } else { *has_min = true; *min = n; errno = 0; n = strtoul(endptr, &endptr, 10); - if ( ('\0' != *endptr) - || (0 != errno)) { - /* invalid */ - return 0; - } + if ('\0' != *endptr || 0 != errno) + return -1; + /* - */ *has_max = true; *max = n; } break; default: - return 0; + return -1; } } - return 1; + return 0; } - diff --git a/src/faillog.c b/src/faillog.c index 83439505f..9a920d3c6 100644 --- a/src/faillog.c +++ b/src/faillog.c @@ -605,9 +605,9 @@ int main (int argc, char **argv) umax = umin; has_umax = true; } else { - if (getrange (optarg, - &umin, &has_umin, - &umax, &has_umax) == 0) { + if (getrange(optarg, + &umin, &has_umin, + &umax, &has_umax) == -1) { fprintf (stderr, _("%s: Unknown user or range: %s\n"), Prog, optarg); diff --git a/src/lastlog.c b/src/lastlog.c index e6f38ea76..5090a33d0 100644 --- a/src/lastlog.c +++ b/src/lastlog.c @@ -381,9 +381,9 @@ int main (int argc, char **argv) umax = umin; has_umax = true; } else { - if (getrange (optarg, - &umin, &has_umin, - &umax, &has_umax) == 0) { + if (getrange(optarg, + &umin, &has_umin, + &umax, &has_umax) == -1) { fprintf (stderr, _("%s: Unknown user or range: %s\n"), Prog, optarg);