Blob Blame History Raw
diff -up shadow-4.2.1/lib/commonio.c.no-lock-dos shadow-4.2.1/lib/commonio.c
--- shadow-4.2.1/lib/commonio.c.no-lock-dos	2015-08-27 15:09:17.101537812 +0200
+++ shadow-4.2.1/lib/commonio.c	2015-08-27 15:11:06.643011248 +0200
@@ -140,7 +140,10 @@ static int do_lock_file (const char *fil
 	int retval;
 	char buf[32];
 
-	fd = open (file, O_CREAT | O_EXCL | O_WRONLY, 0600);
+	/* We depend here on the fact, that the file name is pid-specific.
+	 * So no O_EXCL here and no DoS.
+	 */
+	fd = open (file, O_CREAT | O_TRUNC | O_WRONLY, 0600);
 	if (-1 == fd) {
 		if (log) {
 			(void) fprintf (stderr,