summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/getprogname.c2
-rw-r--r--modules/getprogname1
3 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1e2d2bfe5a..35518ae62b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2020-05-28 Bruno Haible <bruno@clisp.org>
+ getprogname: Make more robust in multithreaded applications.
+ * lib/getprogname.c (getprogname): Pass an O_CLOEXEC flag to open().
+ * modules/getprogname (Depends-on): Add 'open'.
+
+2020-05-28 Bruno Haible <bruno@clisp.org>
+
get_progname_of: Make more robust in multithreaded applications.
* lib/get_progname_of.c (get_progname_of): Pass an O_CLOEXEC flag to
open().
diff --git a/lib/getprogname.c b/lib/getprogname.c
index 43c7f766c5..377e2167c0 100644
--- a/lib/getprogname.c
+++ b/lib/getprogname.c
@@ -223,7 +223,7 @@ getprogname (void)
int fd;
sprintf (filename, "/proc/pinfo/%d", (int) getpid ());
- fd = open (filename, O_RDONLY);
+ fd = open (filename, O_RDONLY | O_CLOEXEC);
if (0 <= fd)
{
prpsinfo_t buf;
diff --git a/modules/getprogname b/modules/getprogname
index 0b3d8fca84..e8038d8348 100644
--- a/modules/getprogname
+++ b/modules/getprogname
@@ -9,6 +9,7 @@ m4/getprogname.m4
Depends-on:
dirname-lgpl
extensions
+open
configure.ac:
gl_FUNC_GETPROGNAME