]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
write: use xstrncpy() from strutils.h
authorSami Kerola <kerolasa@iki.fi>
Fri, 6 May 2016 23:20:32 +0000 (00:20 +0100)
committerSami Kerola <kerolasa@iki.fi>
Fri, 1 Jul 2016 19:59:23 +0000 (20:59 +0100)
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 <kerolasa@iki.fi>
term-utils/write.c

index fb9cdf59be79fddeec4bde47a8f7dad2d8c924bc..11a65804112daa9a632f0f40e40cc1a0158b8ccd 100644 (file)
@@ -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;