Re: Unchecked flags in statx(2) [Should be fixed before 4.11-final?]

From: David Howells
Date: Fri Apr 21 2017 - 08:47:31 EST


David Howells <dhowells@xxxxxxxxxx> wrote:

> > Similarly, there appears to be no check for invalid flags in the
> > 'flags' argument of statx(). Why is there also not such a check
> > there?
>
> Like this?
>
> if (mask & STATX__RESERVED)
> return -EINVAL;

Sorry, I misread. You referred to flags, not mask. There's this in
sys_statx:

if ((flags & AT_STATX_SYNC_TYPE) == AT_STATX_SYNC_TYPE)
return -EINVAL;

this in vfs_statx:

if ((flags & ~(AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT |
AT_EMPTY_PATH | KSTAT_QUERY_FLAGS)) != 0)
return -EINVAL;

and this in vfs_statx_fd:

if (query_flags & ~KSTAT_QUERY_FLAGS)
return -EINVAL;

I don't necessarily agree with that last one, but other people think it should
be there.

David