]> granicus.if.org Git - strace/commit
Fix leakage of placeholder descriptors to tracees
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 13 Aug 2016 22:04:59 +0000 (22:04 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 13 Aug 2016 22:04:59 +0000 (22:04 +0000)
commit559ec3e06db4e20ade6f38dcf54c3312ee22616d
tree00865d604a47fd85c61f93c5457e9dd1207da98a
parentc65e6b9989168867d797ec78b8e3b7e1752744b8
Fix leakage of placeholder descriptors to tracees

As a side effect of commit v4.11-211-g0736d4e, strace used to leak
placeholders for standard descriptors to tracees thus affecting their
behaviour.  Fix this by setting close-on-exec flag on placeholder
descriptors.

* strace.c (open_dummy_desc): Set close-on-exec flag on the descriptor
that is going to be returned to the caller.
(fd_is_placeholder): New array.
(ensure_standard_fds_opened, redirect_standard_fds): New functions.
(startup_child): Use redirect_standard_fds.
(init): Use ensure_standard_fds_opened.
strace.c