diff -up shadow-4.1.4.2/lib/commonio.c.fixes shadow-4.1.4.2/lib/commonio.c --- shadow-4.1.4.2/lib/commonio.c.fixes 2009-09-07 15:51:28.312139467 +0200 +++ shadow-4.1.4.2/lib/commonio.c 2009-09-07 15:52:00.788140456 +0200 @@ -710,7 +710,7 @@ commonio_sort (struct commonio_db *db, i db->tail->prev = entries[n - 1]; db->tail->next = NULL; - for (i = 1; i < n; i++) { + for (i = 1; i < (n-1); i++) { entries[i]->prev = entries[i - 1]; entries[i]->next = entries[i + 1]; } diff -up shadow-4.1.4.2/libmisc/cleanup.c.fixes shadow-4.1.4.2/libmisc/cleanup.c --- shadow-4.1.4.2/libmisc/cleanup.c.fixes 2009-09-07 15:52:22.449035388 +0200 +++ shadow-4.1.4.2/libmisc/cleanup.c 2009-09-07 15:55:06.632033653 +0200 @@ -107,7 +107,7 @@ void del_cleanup (cleanup_function pcf) assert (i limit) { - SYSLOG ((LOG_WARN, "Too many logins (max %d) for %s\n", + SYSLOG ((LOG_WARN, "Too many logins (max %lu) for %s\n", limit, name)); return LOGIN_ERROR_LOGIN; } diff -up shadow-4.1.4.2/libmisc/utmp.c.fixes shadow-4.1.4.2/libmisc/utmp.c --- shadow-4.1.4.2/libmisc/utmp.c.fixes 2009-09-07 15:56:30.534033865 +0200 +++ shadow-4.1.4.2/libmisc/utmp.c 2009-09-07 16:11:23.049069289 +0200 @@ -56,7 +56,7 @@ static bool is_my_tty (const char *tty) /* full_tty shall be at least sizeof utmp.ut_line + 5 */ char full_tty[200]; /* tmptty shall be bigger than full_tty */ - static char tmptty[sizeof (full_tty)+1]; + static char tmptty[sizeof (full_tty)+1] = ""; if ('/' != *tty) { (void) snprintf (full_tty, sizeof full_tty, "/dev/%s", tty); @@ -71,7 +71,7 @@ static bool is_my_tty (const char *tty) } } - if (NULL == tmptty) { + if ('\0' == tmptty[0]) { (void) puts (_("Unable to determine your tty name.")); exit (EXIT_FAILURE); } else if (strncmp (tty, tmptty, sizeof (tmptty)) != 0) { @@ -200,7 +200,6 @@ static void updwtmpx (const char *filena strcpy (hostname, host); #ifdef HAVE_STRUCT_UTMP_UT_HOST } else if ( (NULL != ut) - && (NULL != ut->ut_host) && ('\0' != ut->ut_host[0])) { hostname = (char *) xmalloc (sizeof (ut->ut_host) + 1); strncpy (hostname, ut->ut_host, sizeof (ut->ut_host));