From 93b9cc725658593329756a9c8dbae60c73400919 Mon Sep 17 00:00:00 2001 From: Sam Leffler Date: Fri, 19 Aug 1983 23:19:33 -0800 Subject: [PATCH] incorrect max login name size SCCS-vsn: usr.bin/lastcomm/lastcomm.c 4.8 SCCS-vsn: usr.sbin/quot/quot.c 4.8 SCCS-vsn: bin/ls/ls.c 4.19 SCCS-vsn: usr.bin/who/who.c 4.6 --- usr/src/bin/ls/ls.c | 17 +++++++++-------- usr/src/usr.bin/lastcomm/lastcomm.c | 6 +++--- usr/src/usr.bin/who/who.c | 4 ++-- usr/src/usr.sbin/quot/quot.c | 6 +++--- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/usr/src/bin/ls/ls.c b/usr/src/bin/ls/ls.c index 91cadd39b7..60c9e2163e 100644 --- a/usr/src/bin/ls/ls.c +++ b/usr/src/bin/ls/ls.c @@ -1,5 +1,5 @@ #ifndef lint -static char *sccsid = "@(#)ls.c 4.18 (Berkeley) %G%"; +static char *sccsid = "@(#)ls.c 4.19 (Berkeley) %G%"; #endif /* @@ -589,10 +589,11 @@ fmtmode(lp, flags) #include struct utmp utmp; +#define NMAX (sizeof (utmp.ut_name)) +#define SCPYN(a, b) strncpy(a, b, NMAX) #define NUID 2048 #define NGID 300 -#define NMAX (sizeof (utmp.ut_name)) char names[NUID][NMAX+1]; char outrangename[NMAX+1]; @@ -620,7 +621,7 @@ getname(uid) if (pw->pw_uid != uid) continue; outrangeuid = pw->pw_uid; - strncpy(outrangename, pw->pw_name, NUID); + SCPYN(outrangename, pw->pw_name); endpwent(); return (outrangename); } @@ -633,14 +634,14 @@ getname(uid) if (pw->pw_uid < 0 || pw->pw_uid >= NUID) { if (pw->pw_uid == uid) { outrangeuid = pw->pw_uid; - strncpy(outrangename, pw->pw_name, NUID); + SCPYN(outrangename, pw->pw_name); return (outrangename); } continue; } if (names[pw->pw_uid][0]) continue; - strncpy(names[pw->pw_uid], pw->pw_name, NMAX); + SCPYN(names[pw->pw_uid], pw->pw_name); if (pw->pw_uid == uid) { return (&names[uid][0]); } @@ -669,7 +670,7 @@ getgroup(gid) if (gr->gr_gid != gid) continue; outrangegid = gr->gr_gid; - strncpy(outrangegroup, gr->gr_name, NGID); + SCPYN(outrangegroup, gr->gr_name); endgrent(); return (outrangegroup); } @@ -682,14 +683,14 @@ getgroup(gid) if (gr->gr_gid < 0 || gr->gr_gid >= NGID) { if (gr->gr_gid == gid) { outrangegid = gr->gr_gid; - strncpy(outrangegroup, gr->gr_name, NGID); + SCPYN(outrangegroup, gr->gr_name); return (outrangegroup); } continue; } if (groups[gr->gr_gid][0]) continue; - strncpy(groups[gr->gr_gid], gr->gr_name, NMAX); + SCPYN(groups[gr->gr_gid], gr->gr_name); if (gr->gr_gid == gid) { return (&groups[gid][0]); } diff --git a/usr/src/usr.bin/lastcomm/lastcomm.c b/usr/src/usr.bin/lastcomm/lastcomm.c index 0c6c8680fb..48b0e5f3a0 100644 --- a/usr/src/usr.bin/lastcomm/lastcomm.c +++ b/usr/src/usr.bin/lastcomm/lastcomm.c @@ -1,5 +1,5 @@ #ifndef lint -static char *sccsid = "@(#)lastcomm.c 4.7 (Berkeley) %G%"; +static char *sccsid = "@(#)lastcomm.c 4.8 (Berkeley) %G%"; #endif /* @@ -146,7 +146,7 @@ getname(uid) if (pw->pw_uid != uid) continue; outrangeuid = pw->pw_uid; - strncpy(outrangename, pw->pw_name, NUID); + strncpy(outrangename, pw->pw_name, NMAX); endpwent(); return (outrangename); } @@ -159,7 +159,7 @@ getname(uid) if (pw->pw_uid < 0 || pw->pw_uid >= NUID) { if (pw->pw_uid == uid) { outrangeuid = pw->pw_uid; - strncpy(outrangename, pw->pw_name, NUID); + strncpy(outrangename, pw->pw_name, NMAX); return (outrangename); } continue; diff --git a/usr/src/usr.bin/who/who.c b/usr/src/usr.bin/who/who.c index 7d6df0b320..17b7b23f3a 100644 --- a/usr/src/usr.bin/who/who.c +++ b/usr/src/usr.bin/who/who.c @@ -1,5 +1,5 @@ #ifndef lint -static char *sccsid = "@(#)who.c 4.5 (Berkeley) %G%"; +static char *sccsid = "@(#)who.c 4.6 (Berkeley) %G%"; #endif /* * who @@ -39,7 +39,7 @@ main(argc, argv) tp = rindex(tp, '/') + 1; else { /* no tty - use best guess from passwd file */ pw = getpwuid(getuid()); - strcpy(utmp.ut_name, pw?pw->pw_name: "?"); + strncpy(utmp.ut_name, pw ? pw->pw_name : "?", NMAX); strcpy(utmp.ut_line, "tty??"); time(&utmp.ut_time); putline(); diff --git a/usr/src/usr.sbin/quot/quot.c b/usr/src/usr.sbin/quot/quot.c index 2c38fa0cc7..47a812fa08 100644 --- a/usr/src/usr.sbin/quot/quot.c +++ b/usr/src/usr.sbin/quot/quot.c @@ -1,5 +1,5 @@ #ifndef lint -static char *sccsid = "@(#)quot.c 4.7 (Berkeley) 83/08/16"; +static char *sccsid = "@(#)quot.c 4.8 (Berkeley) 83/08/19"; #endif /* @@ -355,7 +355,7 @@ getname(uid) if (pw->pw_uid != uid) continue; outrangeuid = pw->pw_uid; - strncpy(outrangename, pw->pw_name, NUID); + strncpy(outrangename, pw->pw_name, NMAX); endpwent(); return (outrangename); } @@ -368,7 +368,7 @@ getname(uid) if (pw->pw_uid < 0 || pw->pw_uid >= NUID) { if (pw->pw_uid == uid) { outrangeuid = pw->pw_uid; - strncpy(outrangename, pw->pw_name, NUID); + strncpy(outrangename, pw->pw_name, NMAX); return (outrangename); } continue; -- 2.20.1