>From 20db649aa96aa03b8cc3a2e37466c49d4c8c37af Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 27 May 2020 20:08:33 +0200 Subject: [PATCH 14/18] 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'. --- ChangeLog | 7 +++++++ lib/pagealign_alloc.c | 2 +- modules/pagealign_alloc | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index afc0106..c71ecf8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2020-05-27 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-27 Bruno Haible + openat: Make more robust in multithreaded applications. * lib/openat.c (openat_needs_fchdir): Pass an O_CLOEXEC flag to open(). diff --git a/lib/pagealign_alloc.c b/lib/pagealign_alloc.c index 1995e9c..3bd803e 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 5209b64..b97f9bb 100644 --- a/modules/pagealign_alloc +++ b/modules/pagealign_alloc @@ -12,6 +12,7 @@ error extensions getpagesize gettext-h +open stdlib xalloc unistd -- 2.7.4