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
This commit is contained in:
parent
903d244211
commit
addfa1409d
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -149,6 +149,14 @@ style databases for the password file but depended on the calling programs
|
||||
to install them.
|
||||
The program was renamed in order that previous users of the program
|
||||
not be surprised by the changes in functionality.
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
program will produce warnings if it finds a UID or GID larger than the
|
||||
historical maximum (USHRT_MAX), as these may cause problems for software
|
||||
which assumes such a maximum.
|
||||
Only the first such UID and the first such GID will produce a
|
||||
warning.
|
||||
.Sh SEE ALSO
|
||||
.Xr chpass 1 ,
|
||||
.Xr passwd 1 ,
|
||||
|
Loading…
Reference in New Issue
Block a user