]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
lib/: Use STRNCPY() instead of strncpy(3)
authorAlejandro Colomar <alx@kernel.org>
Wed, 15 Nov 2023 21:36:19 +0000 (22:36 +0100)
committerSerge Hallyn <serge@hallyn.com>
Sun, 26 Nov 2023 12:48:18 +0000 (06:48 -0600)
We've recently fixed several bugs in the calculation of the size in this
function call.  Use this wrapper to prevent similar mistakes in the
future.

Signed-off-by: Alejandro Colomar <alx@kernel.org>
lib/log.c
lib/utmp.c

index 04aa3cfab6397228b1c582562ec2984aa63dad8b..6ab1701fabf0fe558eb36586c1109eec00e9e183 100644 (file)
--- a/lib/log.c
+++ b/lib/log.c
@@ -19,6 +19,7 @@
 #include <lastlog.h>
 #include "memzero.h"
 #include "prototypes.h"
+#include "strncpy.h"
 #include "strtcpy.h"
 
 
@@ -82,7 +83,7 @@ void dolastlog (
        newlog.ll_time = ll_time;
        STRTCPY(newlog.ll_line, line);
 #if HAVE_LL_HOST
-       strncpy(newlog.ll_host, host, sizeof(newlog.ll_host));
+       STRNCPY(newlog.ll_host, host);
 #endif
        if (   (lseek (fd, offset, SEEK_SET) != offset)
            || (write_full(fd, &newlog, sizeof newlog) == -1)
index 0ec2692cc3851185c0d4187e44b0b44f5eaa4cc0..7f116f3b7d16ac7859266741ffac48dccb12ae9e 100644 (file)
@@ -25,6 +25,7 @@
 #include "alloc.h"
 #include "sizeof.h"
 #include "strtcpy.h"
+#include "strncpy.h"
 #include "zustr2stp.h"
 
 #ident "$Id$"
@@ -262,25 +263,25 @@ static
        utent->ut_type = USER_PROCESS;
 #endif                         /* HAVE_STRUCT_UTMP_UT_TYPE */
        utent->ut_pid = getpid ();
-       strncpy(utent->ut_line, line, sizeof(utent->ut_line));
+       STRNCPY(utent->ut_line, line);
 #ifdef HAVE_STRUCT_UTMP_UT_ID
        if (NULL != ut) {
-               strncpy (utent->ut_id, ut->ut_id, sizeof (utent->ut_id));
+               STRNCPY(utent->ut_id, ut->ut_id);
        } else {
                /* XXX - assumes /dev/tty?? */
-               strncpy(utent->ut_id, line + 3, sizeof(utent->ut_id));
+               STRNCPY(utent->ut_id, line + 3);
        }
 #endif                         /* HAVE_STRUCT_UTMP_UT_ID */
 #ifdef HAVE_STRUCT_UTMP_UT_NAME
-       strncpy (utent->ut_name, name,      sizeof (utent->ut_name));
+       STRNCPY(utent->ut_name, name);
 #endif                         /* HAVE_STRUCT_UTMP_UT_NAME */
 #ifdef HAVE_STRUCT_UTMP_UT_USER
-       strncpy(utent->ut_user, name, sizeof(utent->ut_user));
+       STRNCPY(utent->ut_user, name);
 #endif                         /* HAVE_STRUCT_UTMP_UT_USER */
        if (NULL != hostname) {
                struct addrinfo *info = NULL;
 #ifdef HAVE_STRUCT_UTMP_UT_HOST
-               strncpy(utent->ut_host, hostname, sizeof(utent->ut_host));
+               STRNCPY(utent->ut_host, hostname);
 #endif                         /* HAVE_STRUCT_UTMP_UT_HOST */
 #ifdef HAVE_STRUCT_UTMP_UT_SYSLEN
                utent->ut_syslen = MIN (strlen (hostname),