From e74acd59a5c7d56ae0e64c4ffa5043da13ee896e Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 20 Apr 2021 14:52:08 -0400 Subject: remove spurious lock in popen the newly allocated FILE * has not yet leaked to the application and is only visible to stdio internals until popen returns. since we do not change any fields of the structure observed by libc internals, only the pipe_pid member, locking is not necessary. --- src/stdio/popen.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/stdio/popen.c b/src/stdio/popen.c index b53a557..19bbe7c 100644 --- a/src/stdio/popen.c +++ b/src/stdio/popen.c @@ -31,7 +31,6 @@ FILE *popen(const char *cmd, const char *mode) __syscall(SYS_close, p[1]); return NULL; } - FLOCK(f); e = ENOMEM; if (!posix_spawn_file_actions_init(&fa)) { @@ -43,7 +42,6 @@ FILE *popen(const char *cmd, const char *mode) if (!strchr(mode, 'e')) fcntl(p[op], F_SETFD, 0); __syscall(SYS_close, p[1-op]); - FUNLOCK(f); return f; } } -- cgit v1.1