This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[hurd,commited] hurd: Fix pwritev*


This follows c45d78aac ('posix: Fix generic p{read,write}v buffer allocation
(BZ#22457)'), which made pwritev to use __mmap instead of __posix_memalign,
but didn't pass PROT_READ to it, while the pwrite() call does need to
read the data we have just copied over.

	* sysdeps/posix/pwritev_common.c: Add PROT_READ to __mmap prot.
---
 ChangeLog                      | 1 +
 sysdeps/posix/pwritev_common.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 8ddf37ebb8..f0eb187b38 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -36,6 +36,7 @@
 	(__glob64): Define GLIBC_2_27 versioned symbol instead of glob64.
 	* sysdeps/gnu/glob-lstat-compat.c: New file.
 	* sysdeps/gnu/glob64-lstat-compat.c: New file.
+	* sysdeps/posix/pwritev_common.c: Add PROT_READ to __mmap prot.
 
 2018-01-05  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
 
diff --git a/sysdeps/posix/pwritev_common.c b/sysdeps/posix/pwritev_common.c
index bd0f5c5257..344ab4d61b 100644
--- a/sysdeps/posix/pwritev_common.c
+++ b/sysdeps/posix/pwritev_common.c
@@ -55,7 +55,7 @@ PWRITEV (int fd, const struct iovec *vector, int count, OFF_T offset)
      but 1. it is system specific (not meant in generic implementation), and
      2. it would make the implementation more complex, and 3. it will require
      another syscall (fcntl).  */
-  void *buffer = __mmap (NULL, bytes, PROT_WRITE,
+  void *buffer = __mmap (NULL, bytes, PROT_READ | PROT_WRITE,
 		         MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   if (__glibc_unlikely (buffer == MAP_FAILED))
     return -1;
-- 
2.15.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]