Fix useage of MAXLOGNAME to include terminating NUL, by using
max(MAXLOGNAME-1,UT_NAMESIZE). Tidy up "pretty" printing format for longer usernames.
This commit is contained in:
parent
db2c31168e
commit
e57b5686c6
@ -62,7 +62,7 @@ main(int argc, char *argv[])
|
||||
{ /* user */
|
||||
"C:qn:u:c:d:e:p:g:G:mk:s:oL:i:w:h:Db:NPy:Y",
|
||||
"C:qn:u:rY",
|
||||
"C:qn:u:c:d:e:p:g:G:mk:s:w:L:h:FNPY",
|
||||
"C:qn:u:c:d:e:p:g:G:ml:k:s:w:L:h:FNPY",
|
||||
"C:qn:u:FPa",
|
||||
"C:q"
|
||||
},
|
||||
|
@ -36,11 +36,20 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <utmp.h>
|
||||
#if defined(USE_MD5RAND)
|
||||
#include <md5.h>
|
||||
#endif
|
||||
#include "pw.h"
|
||||
#include "bitmap.h"
|
||||
#include "pwupd.h"
|
||||
|
||||
#if (MAXLOGNAME-1) > UT_NAMESIZE
|
||||
#define LOGNAMESIZE UT_NAMESIZE
|
||||
#else
|
||||
#define LOGNAMESIZE (MAXLOGNAME-1)
|
||||
#endif
|
||||
|
||||
static int print_user(struct passwd * pwd, int pretty);
|
||||
static uid_t pw_uidpolicy(struct userconf * cnf, struct cargs * args);
|
||||
static uid_t pw_gidpolicy(struct userconf * cnf, struct cargs * args, char *nam, gid_t prefer);
|
||||
@ -993,7 +1002,7 @@ print_user(struct passwd * pwd, int pretty)
|
||||
strftime(acexpire, sizeof acexpire, "%c", tptr);
|
||||
if (pwd->pw_change > (time_t)9 && (tptr = localtime(&pwd->pw_change)) != NULL)
|
||||
strftime(pwexpire, sizeof pwexpire, "%c", tptr);
|
||||
printf("Login Name: %-10s #%-16ld Group: %-10s #%ld\n"
|
||||
printf("Login Name: %-15s #%-12ld Group: %-15s #%ld\n"
|
||||
" Full Name: %s\n"
|
||||
" Home: %-26.26s Class: %s\n"
|
||||
" Shell: %-26.26s Office: %s\n"
|
||||
@ -1041,7 +1050,7 @@ pw_checkname(u_char *name, int gecos)
|
||||
name[l]);
|
||||
++l;
|
||||
}
|
||||
if (!gecos && l > MAXLOGNAME)
|
||||
if (!gecos && l > LOGNAMESIZE)
|
||||
cmderr(EX_DATAERR, "name too long `%s'\n", name);
|
||||
return (char *)name;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user