From aa9b58000b9f79dd2ab1df7d99bfa398eb606cff Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 27 May 2020 20:08:33 +0200 Subject: [PATCH] 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 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 -- 2.39.5