[Pkg-shadow-commits] r2715 - in upstream/trunk: libmisc src

Nicolas FRANÇOIS nekral-guest at alioth.debian.org
Mon Apr 20 11:37:41 UTC 2009


Author: nekral-guest
Date: 2009-04-20 11:37:41 +0000 (Mon, 20 Apr 2009)
New Revision: 2715

Modified:
   upstream/trunk/libmisc/failure.c
   upstream/trunk/libmisc/failure.h
   upstream/trunk/src/login.c
Log:
	* libmisc/failure.h, libmisc/failure.c, src/login.c: Added
	username as first parameter of failtmp to avoid issues with
	non-null terminated ut_user, unavailability of ut_user, incomplete
	username (that should not happen currently).


Modified: upstream/trunk/libmisc/failure.c
===================================================================
--- upstream/trunk/libmisc/failure.c	2009-04-20 11:31:05 UTC (rev 2714)
+++ upstream/trunk/libmisc/failure.c	2009-04-20 11:37:41 UTC (rev 2715)
@@ -288,7 +288,7 @@
  *	maintains a record of all login failures.
  */
 
-void failtmp (
+void failtmp (const char *username,
 #ifdef HAVE_UTMPX_H
 		     const struct utmpx *failent
 #else
@@ -320,13 +320,9 @@
 
 	fd = open (ftmp, O_WRONLY | O_APPEND);
 	if (-1 == fd) {
-		char ut_user[sizeof failent->ut_user];
-		(void) strncpy (&ut_user[0], failent->ut_user, sizeof ut_user);
-		ut_user[sizeof ut_user - 1] = '\0';
-
 		SYSLOG ((LOG_WARN,
 		         "Can't append failure of user %s to %s.",
-		         ut_user, ftmp));
+		         username, ftmp));
 		return;
 	}
 
@@ -336,13 +332,9 @@
 
 	if (   (write (fd, (const void *) failent, sizeof *failent) != (ssize_t) sizeof *failent)
 	    || (close (fd) != 0)) {
-		char ut_user[sizeof failent->ut_user];
-		(void) strncpy (&ut_user[0], failent->ut_user, sizeof ut_user);
-		ut_user[sizeof ut_user - 1] = '\0';
-
 		SYSLOG ((LOG_WARN,
 		         "Can't append failure of user %s to %s.",
-		         ut_user, ftmp));
+		         username, ftmp));
 		(void) close (fd);
 	}
 }

Modified: upstream/trunk/libmisc/failure.h
===================================================================
--- upstream/trunk/libmisc/failure.h	2009-04-20 11:31:05 UTC (rev 2714)
+++ upstream/trunk/libmisc/failure.h	2009-04-20 11:37:41 UTC (rev 2715)
@@ -2,7 +2,7 @@
  * Copyright (c) 1990 - 1994, Julianne Frances Haugh
  * Copyright (c) 1997 - 2000, Marek Michałkiewicz
  * Copyright (c) 2005       , Tomasz Kłoczko
- * Copyright (c) 2008       , Nicolas François
+ * Copyright (c) 2008 - 2009, Nicolas François
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -75,9 +75,9 @@
  *	maintains a record of all login failures.
  */
 #ifdef HAVE_UTMPX_H
-extern void failtmp (const struct utmpx *);
+extern void failtmp (const char *username, const struct utmpx *);
 #else
-extern void failtmp (const struct utmp *);
+extern void failtmp (const char *username, const struct utmp *);
 #endif
 
 #endif

Modified: upstream/trunk/src/login.c
===================================================================
--- upstream/trunk/src/login.c	2009-04-20 11:31:05 UTC (rev 2714)
+++ upstream/trunk/src/login.c	2009-04-20 11:37:41 UTC (rev 2715)
@@ -997,7 +997,7 @@
 			strncpy (failent.ut_user, failent_user,
 			         sizeof (failent.ut_user));
 			failent.ut_type = USER_PROCESS;
-			failtmp (&failent);
+			failtmp (failent_user, &failent);
 		}
 
 		retries--;




More information about the Pkg-shadow-commits mailing list