From e4aaa0e5932e12671d209a5fcf60f4775b7820a8 Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sat, 7 May 2016 00:20:32 +0100 Subject: write: use xstrncpy() from strutils.h Earlier if the tty path was exactly length of the maximum ut_line then last character of the path was overwrote by \0. This is in practise theoretical bug, as it is unheard that a tty device path could be 32 characters long. Signed-off-by: Sami Kerola --- term-utils/write.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'term-utils/write.c') diff --git a/term-utils/write.c b/term-utils/write.c index fb9cdf59b..11a658041 100644 --- a/term-utils/write.c +++ b/term-utils/write.c @@ -63,6 +63,7 @@ #include "carefulputc.h" #include "closestream.h" #include "nls.h" +#include "strutils.h" #include "xalloc.h" static void __attribute__ ((__noreturn__)) usage(FILE * out) @@ -164,8 +165,7 @@ static void search_utmp(char *user, char *tty, char *mytty, uid_t myuid) memcpy(&u, uptr, sizeof(u)); if (strncmp(user, u.ut_user, sizeof(u.ut_user)) == 0) { ++nloggedttys; - strncpy(atty, u.ut_line, sizeof(u.ut_line)); - atty[sizeof(u.ut_line)] = '\0'; + xstrncpy(atty, u.ut_line, sizeof(atty)); if (term_chk(atty, &msgsok, &atime, 0)) /* bad term? skip */ continue; -- cgit v1.2.3-55-g7522