diff --git a/ChangeLog b/ChangeLog index 7e30bf4dca..a3543f8a31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-05-28 Bruno Haible + + pagealign_alloc: Make more robust in multithreaded applications. + * lib/pagealign_alloc.c (pagealign_alloc): Pass an O_CLOEXEC flag to + open(). + * modules/pagealign_alloc (Depends-on): Add 'open'. + 2020-05-28 Bruno Haible openat: Make more robust in multithreaded applications. diff --git a/lib/pagealign_alloc.c b/lib/pagealign_alloc.c index 1995e9c57e..3bd803e4a8 100644 --- a/lib/pagealign_alloc.c +++ b/lib/pagealign_alloc.c @@ -132,7 +132,7 @@ pagealign_alloc (size_t size) const int flags = MAP_FILE | MAP_PRIVATE; if (fd == -1) { - fd = open ("/dev/zero", O_RDONLY, 0666); + fd = open ("/dev/zero", O_RDONLY | O_CLOEXEC, 0666); if (fd < 0) error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read")); } diff --git a/modules/pagealign_alloc b/modules/pagealign_alloc index 5209b645f5..b97f9bb2fd 100644 --- a/modules/pagealign_alloc +++ b/modules/pagealign_alloc @@ -12,6 +12,7 @@ error extensions getpagesize gettext-h +open stdlib xalloc unistd