statx: reject unknown flags when using NULL path
authorEric Biggers <ebiggers@google.com>
Fri, 31 Mar 2017 17:31:32 +0000 (18:31 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 3 Apr 2017 05:05:56 +0000 (01:05 -0400)
commit8c7493aa3e9ae90f90196f4d4c1398ad143cba7b
tree1639352862be76cb08c7b04f64a71008aeab18b9
parent75dd7e4bb663c7047c7d1bd4dad26f8c048851be
statx: reject unknown flags when using NULL path

The statx() system call currently accepts unknown flags when called with
a NULL path to operate on a file descriptor.  Left unchanged, this could
make it hard to introduce new query flags in the future, since
applications may not be able to tell whether a given flag is supported.

Fix this by failing the system call with EINVAL if any flags other than
KSTAT_QUERY_FLAGS are specified in combination with a NULL path.

Arguably, we could still permit known lookup-related flags such as
AT_SYMLINK_NOFOLLOW.  However, that would be inconsistent with how
sys_utimensat() behaves when passed a NULL path, which seems to be the
closest precedent.  And given that the NULL path case is (I believe)
mainly intended to be used to implement a wrapper function like fstatx()
that doesn't have a path argument, I think rejecting lookup-related
flags too is probably the best choice.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/stat.c