summaryrefslogtreecommitdiffstats
path: root/pw
diff options
context:
space:
mode:
authorDavid Nugent <davidn@FreeBSD.org>1997-02-07 10:58:13 +0000
committerDavid Nugent <davidn@FreeBSD.org>1997-02-07 10:58:13 +0000
commit5ad8ded4512753663b89863847a2085fcd0c9d79 (patch)
tree573422401dc9ff8ffb0b3a330b062f7fd8313c1e /pw
parentf18f8d4fcb5c290a942f5e60f798546f53c6e46d (diff)
downloadpw-darwin-5ad8ded4512753663b89863847a2085fcd0c9d79.tar.gz
pw-darwin-5ad8ded4512753663b89863847a2085fcd0c9d79.tar.zst
pw-darwin-5ad8ded4512753663b89863847a2085fcd0c9d79.zip
Fix useage of MAXLOGNAME to include terminating NUL, by using
max(MAXLOGNAME-1,UT_NAMESIZE). Tidy up "pretty" printing format for longer usernames.
Diffstat (limited to 'pw')
-rw-r--r--pw/pw.c2
-rw-r--r--pw/pw_user.c13
2 files changed, 12 insertions, 3 deletions
diff --git a/pw/pw.c b/pw/pw.c
index b7336e1..91412a8 100644
--- a/pw/pw.c
+++ b/pw/pw.c
@@ -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"
},
diff --git a/pw/pw_user.c b/pw/pw_user.c
index effad9a..ebc754a 100644
--- a/pw/pw_user.c
+++ b/pw/pw_user.c
@@ -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;
}