cred: Reject inodes with invalid ids in set_create_file_as()

Using INVALID_[UG]ID for the LSM file creation context doesn't
make sense, so return an error if the inode passed to
set_create_file_as() has an invalid id.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This commit is contained in:
Seth Forshee 2016-04-26 14:36:24 -05:00 committed by Eric W. Biederman
parent 2d7f9e2ad3
commit 5f65e5ca28
1 changed files with 2 additions and 0 deletions

View File

@ -689,6 +689,8 @@ EXPORT_SYMBOL(set_security_override_from_ctx);
*/ */
int set_create_files_as(struct cred *new, struct inode *inode) int set_create_files_as(struct cred *new, struct inode *inode)
{ {
if (!uid_valid(inode->i_uid) || !gid_valid(inode->i_gid))
return -EINVAL;
new->fsuid = inode->i_uid; new->fsuid = inode->i_uid;
new->fsgid = inode->i_gid; new->fsgid = inode->i_gid;
return security_kernel_create_files_as(new, inode); return security_kernel_create_files_as(new, inode);