diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-07-06 15:40:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-07-06 15:40:36 +0000 |
commit | 8c8e3c5ed1f9dcd4351bf7f7e6be2f4b6c3fac52 (patch) | |
tree | 4772fd0ddb86d0dcf889aff9e7d9b593ad1b42c7 /libio | |
parent | 168dc155cc15873d47b957c5292ffdbc2ff0d973 (diff) |
(_IO_new_fdopen): Set EINVAL if MODE is not allowed by the file access
mode of the open file.
Diffstat (limited to 'libio')
-rw-r--r-- | libio/iofdopen.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libio/iofdopen.c b/libio/iofdopen.c index 40419bd267..c71258e631 100644 --- a/libio/iofdopen.c +++ b/libio/iofdopen.c @@ -76,10 +76,15 @@ _IO_new_fdopen (fd, mode) #ifndef O_ACCMODE #define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) #endif - if (fd_flags == -1 - || ((fd_flags & O_ACCMODE) == O_RDONLY && !(read_write & _IO_NO_WRITES)) - || ((fd_flags & O_ACCMODE) == O_WRONLY && !(read_write & _IO_NO_READS))) + if (fd_flags == -1) return NULL; + + if (((fd_flags & O_ACCMODE) == O_RDONLY && !(read_write & _IO_NO_WRITES)) + || ((fd_flags & O_ACCMODE) == O_WRONLY && !(read_write & _IO_NO_READS))) + { + MAYBE_SET_EINVAL; + return NULL; + } /* The May 93 draft of P1003.4/D14.1 (redesignated as 1003.1b) [System Application Program Interface (API) Amendment 1: |