From: Sami Kerola Date: Fri, 6 May 2016 23:20:32 +0000 (+0100) Subject: write: use xstrncpy() from strutils.h X-Git-Tag: v2.29-rc1~152^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4aaa0e5932e12671d209a5fcf60f4775b7820a8;p=thirdparty%2Futil-linux.git 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 --- diff --git a/term-utils/write.c b/term-utils/write.c index fb9cdf59be..11a6580411 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;