diff --git a/libmisc/failure.c b/libmisc/failure.c index f6390a79..a1f3ec79 100644 --- a/libmisc/failure.c +++ b/libmisc/failure.c @@ -98,7 +98,7 @@ void failure (uid_t uid, const char *tty, struct faillog *fl) fl->fail_cnt++; } - strncpy (fl->fail_line, tty, sizeof fl->fail_line); + strncpy (fl->fail_line, tty, sizeof (fl->fail_line) - 1); (void) time (&fl->fail_time); /* diff --git a/libmisc/log.c b/libmisc/log.c index eb84859e..68a9d7e2 100644 --- a/libmisc/log.c +++ b/libmisc/log.c @@ -100,9 +100,9 @@ void dolastlog ( ll_time = newlog.ll_time; (void) time (&ll_time); newlog.ll_time = ll_time; - strncpy (newlog.ll_line, line, sizeof newlog.ll_line); + strncpy (newlog.ll_line, line, sizeof (newlog.ll_line) - 1); #if HAVE_LL_HOST - strncpy (newlog.ll_host, host, sizeof newlog.ll_host); + strncpy (newlog.ll_host, host, sizeof (newlog.ll_host) - 1); #endif if ( (lseek (fd, offset, SEEK_SET) != offset) || (write (fd, (const void *) &newlog, sizeof newlog) != (ssize_t) sizeof newlog) diff --git a/libmisc/utmp.c b/libmisc/utmp.c index ba69cf61..5dcd419f 100644 --- a/libmisc/utmp.c +++ b/libmisc/utmp.c @@ -257,25 +257,25 @@ static void updwtmpx (const char *filename, const struct utmpx *utx) 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, sizeof (utent->ut_line) - 1); #ifdef HAVE_STRUCT_UTMP_UT_ID if (NULL != ut) { strncpy (utent->ut_id, ut->ut_id, sizeof (utent->ut_id)); } else { /* XXX - assumes /dev/tty?? */ - strncpy (utent->ut_id, line + 3, sizeof (utent->ut_id)); + strncpy (utent->ut_id, line + 3, sizeof (utent->ut_id) - 1); } #endif /* HAVE_STRUCT_UTMP_UT_ID */ #ifdef HAVE_STRUCT_UTMP_UT_NAME strncpy (utent->ut_name, name, sizeof (utent->ut_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, sizeof (utent->ut_user) - 1); #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, sizeof (utent->ut_host) - 1); #endif /* HAVE_STRUCT_UTMP_UT_HOST */ #ifdef HAVE_STRUCT_UTMP_UT_SYSLEN utent->ut_syslen = MIN (strlen (hostname),