diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/gen/pw_scan.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/libc/gen/pw_scan.c b/lib/libc/gen/pw_scan.c index 5190686..e03b49c 100644 --- a/lib/libc/gen/pw_scan.c +++ b/lib/libc/gen/pw_scan.c @@ -56,6 +56,9 @@ static const char rcsid[] = #include "pw_scan.h" +static int big_uids = 0; /* Used for legacy max uid_t warning */ +static int big_gids = 0; /* Used for legacy max gid_t warning */ + int pw_scan(bp, pw) char *bp; @@ -84,9 +87,9 @@ pw_scan(bp, pw) warnx("root uid should be 0"); return (0); } - if (id > USHRT_MAX) { - warnx("%s > max uid value (%d)", p, USHRT_MAX); - /*return (0);*/ /* THIS SHOULD NOT BE FATAL! */ + if (id > USHRT_MAX && !(big_uids++)) { + warnx("%s > legacy max uid value (%d): " + "no more such warnings", p, USHRT_MAX); } pw->pw_uid = id; @@ -94,9 +97,9 @@ pw_scan(bp, pw) goto fmt; if(p[0]) pw->pw_fields |= _PWF_GID; id = atol(p); - if (id > USHRT_MAX) { - warnx("%s > max gid value (%d)", p, USHRT_MAX); - /* return (0); This should not be fatal! */ + if (id > USHRT_MAX && !(big_gids++)) { + warnx("%s > max gid value (%d): " + "no more such warnings", p, USHRT_MAX); } pw->pw_gid = id; |