xfs: reject invalid flags combinations in XFS_IOC_ATTRLIST_BY_HANDLE
While the flags field in the ABI and the on-disk format allows for multiple namespace flags, an attribute can only exist in a single namespace at a time. Hence asking to list attributes that exist in multiple namespaces simultaneously is a logically invalid request and will return no results. Reject this case early with -EINVAL. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Chandan Rajendra <chandanrlinux@gmail.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
Родитель
211683b21d
Коммит
4d542e4c1e
|
@ -317,6 +317,8 @@ xfs_attrlist_by_handle(
|
|||
*/
|
||||
if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE))
|
||||
return -EINVAL;
|
||||
if (al_hreq.flags == (ATTR_ROOT | ATTR_SECURE))
|
||||
return -EINVAL;
|
||||
|
||||
dentry = xfs_handlereq_to_dentry(parfilp, &al_hreq.hreq);
|
||||
if (IS_ERR(dentry))
|
||||
|
|
|
@ -375,6 +375,8 @@ xfs_compat_attrlist_by_handle(
|
|||
*/
|
||||
if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE))
|
||||
return -EINVAL;
|
||||
if (al_hreq.flags == (ATTR_ROOT | ATTR_SECURE))
|
||||
return -EINVAL;
|
||||
|
||||
dentry = xfs_compat_handlereq_to_dentry(parfilp, &al_hreq.hreq);
|
||||
if (IS_ERR(dentry))
|
||||
|
|
Загрузка…
Ссылка в новой задаче