summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/syscall/fcntl.c
diff options
context:
space:
mode:
authorRoger A. Faulkner <Roger.Faulkner@Oracle.COM>2010-07-07 17:36:17 -0700
committerRoger A. Faulkner <Roger.Faulkner@Oracle.COM>2010-07-07 17:36:17 -0700
commit794f0adb050e571bbfde4d2a19b9f88b852079dd (patch)
treec1735b3eda175e9096f5b062a73614e73aa5cd9a /usr/src/uts/common/syscall/fcntl.c
parent07925104db56e5c3eacc4865b918bd16af5cec59 (diff)
downloadillumos-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.c16
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: