https://bugzilla.kernel.org/show_bug.cgi?id=74481 Bug ID: 74481 Summary: It should be documented that using fexecve on a file opened in O_CLOEXEC that is a script cannot possibly work. Product: Documentation Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P1 Component: man-pages Assignee: documentation_man-pages@xxxxxxxxxxxxxxxxxxxx Reporter: sstewartgallus00@xxxxxxxxxxxxxxx Regression: No Consider the following program: #include <errno.h> #include <fcntl.h> #include <unistd.h> int main() { int test = open("./test.sh", O_RDONLY | O_CLOEXEC); if (-1 == test) { perror("open"); } char * const argv[] = { (char *) "./test.sh", NULL }; char * const env[] = { NULL }; fexecve(test, argv, env); perror("fexecve"); return 0; } and the following script: #! /usr/bin/env dash echo 'hello world!' When the C program is run, it cannot work because by the time the interpreter has the passed in file name "/proc/self/fd/${FD}" it has already been closed. This is a strange corner case that should be documented. -- You are receiving this mail because: You are watching the assignee of the bug. -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html