diff options
author | Roger A. Faulkner <Roger.Faulkner@Oracle.COM> | 2010-07-07 17:36:17 -0700 |
---|---|---|
committer | Roger A. Faulkner <Roger.Faulkner@Oracle.COM> | 2010-07-07 17:36:17 -0700 |
commit | 794f0adb050e571bbfde4d2a19b9f88b852079dd (patch) | |
tree | c1735b3eda175e9096f5b062a73614e73aa5cd9a /usr/src/uts/common/syscall/fcntl.c | |
parent | 07925104db56e5c3eacc4865b918bd16af5cec59 (diff) | |
download | illumos-gate-794f0adb050e571bbfde4d2a19b9f88b852079dd.tar.gz |
PSARC 2010/235 POSIX 1003.1-2008 *at(2) syscalls
6910251 need support for all POSIX.1-2008 *at(2) syscalls
6964835 mknod(2) auditing omits the pathname for invalid arguments
Diffstat (limited to 'usr/src/uts/common/syscall/fcntl.c')
-rw-r--r-- | usr/src/uts/common/syscall/fcntl.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/usr/src/uts/common/syscall/fcntl.c b/usr/src/uts/common/syscall/fcntl.c index 0750e54697..4a6e58f6b0 100644 --- a/usr/src/uts/common/syscall/fcntl.c +++ b/usr/src/uts/common/syscall/fcntl.c @@ -114,13 +114,21 @@ fcntl(int fdes, int cmd, intptr_t arg) goto out; case F_GETFL: - if ((error = f_getfl(fdes, &flag)) == 0) - retval = (flag & (FMASK | FASYNC)) + FOPEN; + if ((error = f_getfl(fdes, &flag)) == 0) { + retval = (flag & (FMASK | FASYNC)); + if ((flag & (FSEARCH | FEXEC)) == 0) + retval += FOPEN; + else + retval |= (flag & (FSEARCH | FEXEC)); + } goto out; case F_GETXFL: - if ((error = f_getfl(fdes, &flag)) == 0) - retval = flag + FOPEN; + if ((error = f_getfl(fdes, &flag)) == 0) { + retval = flag; + if ((flag & (FSEARCH | FEXEC)) == 0) + retval += FOPEN; + } goto out; case F_BADFD: |