svn commit: r271639 - in user/ngie/add-pjdfstest: lib/libc/sys sys/kern
Garrett Cooper
ngie at FreeBSD.org
Mon Sep 15 18:41:51 UTC 2014
Author: ngie
Date: Mon Sep 15 18:41:50 2014
New Revision: 271639
URL: http://svnweb.freebsd.org/changeset/base/271639
Log:
Validate the mode argument in access, eaccess, and faccessat for optional
POSIX compliance and to improve compatibility with Linux and NetBSD
The issue was identified with lib/libc/sys/t_access:access_inval from
NetBSD
Update the manpage accordingly
PR: 181155
Reviewed by: jilles (code), jmmv (code), wblock (manpage), wollman (code)
MFC after: 4 weeks
Phabric: D678 (code), D786 (manpage)
Sponsored by: EMC / Isilon Storage Division
Modified:
user/ngie/add-pjdfstest/lib/libc/sys/access.2
user/ngie/add-pjdfstest/sys/kern/vfs_syscalls.c
Modified: user/ngie/add-pjdfstest/lib/libc/sys/access.2
==============================================================================
--- user/ngie/add-pjdfstest/lib/libc/sys/access.2 Mon Sep 15 18:09:30 2014 (r271638)
+++ user/ngie/add-pjdfstest/lib/libc/sys/access.2 Mon Sep 15 18:41:50 2014 (r271639)
@@ -133,8 +133,16 @@ and
.Sh RETURN VALUES
.Rv -std
.Sh ERRORS
-Access to the file is denied if:
+.Fn access ,
+.Fn eaccess ,
+or
+.Fn faccessat
+will fail if:
.Bl -tag -width Er
+.It Bq Er EINVAL
+The value of the
+.Fa mode
+argument is invalid.
.It Bq Er ENOTDIR
A component of the path prefix is not a directory.
.It Bq Er ENAMETOOLONG
Modified: user/ngie/add-pjdfstest/sys/kern/vfs_syscalls.c
==============================================================================
--- user/ngie/add-pjdfstest/sys/kern/vfs_syscalls.c Mon Sep 15 18:09:30 2014 (r271638)
+++ user/ngie/add-pjdfstest/sys/kern/vfs_syscalls.c Mon Sep 15 18:41:50 2014 (r271639)
@@ -2055,6 +2055,9 @@ kern_accessat(struct thread *td, int fd,
cap_rights_t rights;
int error;
+ if (amode != F_OK && (amode & ~(R_OK | W_OK | X_OK)) != 0)
+ return (EINVAL);
+
/*
* Create and modify a temporary credential instead of one that
* is potentially shared.
More information about the svn-src-user
mailing list