diff options
author | sheldonh <sheldonh@FreeBSD.org> | 1999-08-30 09:55:42 +0000 |
---|---|---|
committer | sheldonh <sheldonh@FreeBSD.org> | 1999-08-30 09:55:42 +0000 |
commit | addfa1409d29fdab711254c22cf82d2ee08b0bdc (patch) | |
tree | 97dcb8295788204086d705956744e7495b2c1bf0 /lib | |
parent | 903d244211fbbcc99b0aacb7009d0f967bc623d9 (diff) | |
download | FreeBSD-src-addfa1409d29fdab711254c22cf82d2ee08b0bdc.zip FreeBSD-src-addfa1409d29fdab711254c22cf82d2ee08b0bdc.tar.gz |
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
Diffstat (limited to 'lib')
-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; |