aio_fsync: fix the access mode check

Make use of O_ACCMODE and O_RDONLY instead of assuming details of the O_* flags.
This commit is contained in:
Pino Toscano 2012-09-28 18:35:43 +02:00
parent 115411772b
commit b31606c0e1
2 changed files with 5 additions and 1 deletions

View file

@ -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]

View file

@ -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;