diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | rt/aio_fsync.c | 7 |
2 files changed, 9 insertions, 0 deletions
@@ -10,6 +10,8 @@ * rt/aio_misc.c: Set errno at correct place. + * rt/aio_fsync.c: Test OP parameter for correct values. + 1999-08-04 Andreas Schwab <schwab@suse.de> * sysdeps/unix/sysv/linux/alpha/getsysstats.c (GET_NPROCS_PARSER): diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c index 72d4837..298b4ec 100644 --- a/rt/aio_fsync.c +++ b/rt/aio_fsync.c @@ -28,6 +28,7 @@ #include <aio.h> /* And undo the hack. */ #undef aio_fsync64 +#include <errno.h> #include "aio_misc.h" @@ -35,6 +36,12 @@ int aio_fsync (int op, struct aiocb *aiocbp) { + if (op != O_DSYNC && op != O_SYNC) + { + __set_errno (EINVAL); + return -1; + } + return (__aio_enqueue_request ((aiocb_union *) aiocbp, op == O_SYNC ? LIO_SYNC : LIO_DSYNC) == NULL ? -1 : 0); |