diff --git a/usr.bin/w/pr_time.c b/usr.bin/w/pr_time.c index 6faf6db10ecd..c48f6a7cf738 100644 --- a/usr.bin/w/pr_time.c +++ b/usr.bin/w/pr_time.c @@ -76,7 +76,8 @@ pr_attime(started, now) (void)strcpy(fmt, __CONCAT("%l:%", "M%p")); } - (void)strftime(buf, sizeof(buf), fmt, tp); + (void)strftime(buf, sizeof(buf) - 1, fmt, tp); + buf[sizeof(buf) - 1] = '\0'; (void)printf("%s", buf); } diff --git a/usr.bin/w/w.c b/usr.bin/w/w.c index c615430c04d6..f02799717b61 100644 --- a/usr.bin/w/w.c +++ b/usr.bin/w/w.c @@ -377,8 +377,9 @@ pr_header(nowp, nusers) * SCCS forces the string manipulation below, as it replaces * %, M, and % in a character string with the file name. */ - (void)strftime(buf, sizeof(buf), + (void)strftime(buf, sizeof(buf) - 1, __CONCAT("%l:%","M%p"), localtime(nowp)); + buf[sizeof(buf) - 1] = '\0'; (void)printf("%s ", buf); /*