aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPino Toscano <toscano.pino@tiscali.it>2012-09-28 18:35:43 +0200
committerPino Toscano <toscano.pino@tiscali.it>2012-09-28 18:35:43 +0200
commitb31606c0e1d9f04e2498b7c8262f7de87daa7ce7 (patch)
treefe0de7f60bd266f727c84f5570d5017efb7f9aad
parent115411772b189e9e41a97618816edd66f0a9a620 (diff)
downloadglibc-b31606c0e1d9f04e2498b7c8262f7de87daa7ce7.zip
glibc-b31606c0e1d9f04e2498b7c8262f7de87daa7ce7.tar.gz
glibc-b31606c0e1d9f04e2498b7c8262f7de87daa7ce7.tar.bz2
aio_fsync: fix the access mode check
Make use of O_ACCMODE and O_RDONLY instead of assuming details of the O_* flags.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/pthread/aio_fsync.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 27cf3a9..207519b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-28 Pino Toscano <toscano.pino@tiscali.it>
+
+ * sysdeps/pthread/aio_fsync.c: Fix the file mode checking.
+
2012-09-28 Dmitry V. Levin <ldv@altlinux.org>
[BZ #11438]
diff --git a/sysdeps/pthread/aio_fsync.c b/sysdeps/pthread/aio_fsync.c
index 046e25c..5b5d186 100644
--- a/sysdeps/pthread/aio_fsync.c
+++ b/sysdeps/pthread/aio_fsync.c
@@ -46,7 +46,7 @@ aio_fsync (int op, struct aiocb *aiocbp)
flags = fcntl (aiocbp->aio_fildes, F_GETFL);
if (__builtin_expect (flags == -1, 0)
- || __builtin_expect ((flags & (O_RDWR | O_WRONLY)) == 0, 0))
+ || __builtin_expect ((flags & O_ACCMODE) == O_RDONLY, 0))
{
__set_errno (EBADF);
return -1;