summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/pathconf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/pathconf.c')
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index 375d672925..52610a14d8 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -37,6 +37,7 @@ __pathconf (const char *file, int name)
 {
   struct statfs fsbuf;
   int fd;
+  int flags;
 
   switch (name)
     {
@@ -53,7 +54,11 @@ __pathconf (const char *file, int name)
       return __statfs_chown_restricted (__statfs (file, &fsbuf), &fsbuf);
 
     case _PC_PIPE_BUF:
-      fd = open_not_cancel_2 (file, O_RDONLY|O_NONBLOCK);
+      flags = O_RDONLY|O_NONBLOCK|O_NOCTTY;
+#ifdef O_CLOEXEC
+      flags |= O_CLOEXEC;
+#endif
+      fd = open_not_cancel_2 (file, flags);
       if (fd >= 0)
 	{
 	  long int r = __fcntl (fd, F_GETPIPE_SZ);