From d07e0690e1f62b9653262c9ad68f18d6ca54f7f7 Mon Sep 17 00:00:00 2001 From: Sheldon Hearn Date: Mon, 30 Aug 1999 09:55:42 +0000 Subject: Only issue a warning for the first occurrence of a UID > USHRT_MAX and the first occurrence of a GID > USHRT_MAX. PR: 13344 Reviewed by: bde --- libc/gen/pw_scan.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'libc') diff --git a/libc/gen/pw_scan.c b/libc/gen/pw_scan.c index 5190686..e03b49c 100644 --- a/libc/gen/pw_scan.c +++ b/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; -- cgit v1.2.3-56-ge451