mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2024-11-24 04:09:39 +00:00
[SV 58232] Disable inheritance of jobserver FDs for recursive make
A parent make will invoke a sub-make with close-on-exec disabled for the jobserver pipe FDs. Force close-on-exec to be to be enabled in the sub-make so the pipe is not always passed to child jobs. I have a test case which, when invoked with a suitable -j switch, will hang if the recipe inherits the jobserver pipe. This test case was inspired by a real world case in which testing GDB on Fedora would hang due to some poorly written test GDB cases having been passed the jobserver file descriptors. * src/posixos.c (jobserver_parse_auth): Call fd_noinherit() for jobserver pipe descriptors. Copyright-paperwork-exempt: yes (cherry picked from commit d79fe162c009788888faaf0317253b6f0cac7092) Signed-off-by: Manoj Srivastava <srivasta@debian.org>
This commit is contained in:
parent
cd6a65e8b8
commit
9cfd45525a
1 changed files with 5 additions and 0 deletions
|
@ -145,6 +145,11 @@ jobserver_parse_auth (const char *auth)
|
|||
/* When using pselect() we want the read to be non-blocking. */
|
||||
set_blocking (job_fds[0], 0);
|
||||
|
||||
/* By default we don't send the job pipe FDs to our children.
|
||||
See jobserver_pre_child() and jobserver_post_child(). */
|
||||
fd_noinherit (job_fds[0]);
|
||||
fd_noinherit (job_fds[1]);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue