Merge branch 'spawn-close_range' into 'master'

gspawn: Use close_range() if available to close FDs between fork/exec

See merge request GNOME/glib!1688
This commit is contained in:
Sebastian Dröge 2020-10-13 06:52:10 +00:00
commit 59b71837a5
2 changed files with 6 additions and 0 deletions

View File

@ -1327,6 +1327,11 @@ safe_closefrom (int lowfd)
* simple wrapper of the fcntl command.
*/
(void) fcntl (lowfd, F_CLOSEM);
#elif defined(HAVE_CLOSE_RANGE)
/* close_range() is available in Linux since kernel 5.9, and on FreeBSD at
* around the same time. It was designed for use in async-signal-safe
* situations: https://bugs.python.org/issue38061 */
(void) close_range (lowfd, G_MAXUINT);
#else
(void) safe_fdwalk (close_func, GINT_TO_POINTER (lowfd));
#endif

View File

@ -473,6 +473,7 @@ if host_system == 'windows'
endif
functions = [
'close_range',
'endmntent',
'endservent',
'fallocate',