Module Name:    src
Committed By:   rillig
Date:           Mon Oct 10 17:33:35 UTC 2022

Modified Files:
        src/usr.bin/make: main.c

Log Message:
make: document the guard for directories in unlink_file

Document only the POSIX requirement for now, as I didn't find
information about _which_ ancient UNIX systems would corrupt the
filesystem on unlinking a directory.

http://man.cat-v.org/unix-1st/2/sys-unlink (1971) says:
> It is also illegal to unlink a directory (except for the super-user).

https://mail-index.netbsd.org/tech-toolchain/2022/10/06/msg004147.html


To generate a diff of this commit:
cvs rdiff -u -r1.583 -r1.584 src/usr.bin/make/main.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/main.c
diff -u src/usr.bin/make/main.c:1.583 src/usr.bin/make/main.c:1.584
--- src/usr.bin/make/main.c:1.583	Wed Sep 28 16:34:47 2022
+++ src/usr.bin/make/main.c	Mon Oct 10 17:33:35 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.583 2022/09/28 16:34:47 sjg Exp $	*/
+/*	$NetBSD: main.c,v 1.584 2022/10/10 17:33:35 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -111,7 +111,7 @@
 #include "trace.h"
 
 /*	"@(#)main.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: main.c,v 1.583 2022/09/28 16:34:47 sjg Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.584 2022/10/10 17:33:35 rillig Exp $");
 #if defined(MAKE_NATIVE) && !defined(lint)
 __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
 	    "The Regents of the University of California.  "
@@ -1890,6 +1890,10 @@ unlink_file(const char *file)
 		return false;
 
 	if (S_ISDIR(st.st_mode)) {
+		/*
+		 * POSIX says for unlink: "The path argument shall not name
+		 * a directory unless [...]".
+		 */
 		errno = EISDIR;
 		return false;
 	}

Reply via email to