Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf1dd1da authored by Al Viro's avatar Al Viro
Browse files

selinux: don't transliterate MAY_NOT_BLOCK to IPERM_FLAG_RCU



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent e74f71eb
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -527,7 +527,7 @@ int avc_audit(u32 ssid, u32 tsid,
	 * happened a little later.
	 * happened a little later.
	 */
	 */
	if ((a->type == LSM_AUDIT_DATA_INODE) &&
	if ((a->type == LSM_AUDIT_DATA_INODE) &&
	    (flags & IPERM_FLAG_RCU))
	    (flags & MAY_NOT_BLOCK))
		return -ECHILD;
		return -ECHILD;


	a->selinux_audit_data.tclass = tclass;
	a->selinux_audit_data.tclass = tclass;
+2 −2
Original line number Original line Diff line number Diff line
@@ -2665,7 +2665,7 @@ static int selinux_inode_permission(struct inode *inode, int mask)
	struct common_audit_data ad;
	struct common_audit_data ad;
	u32 perms;
	u32 perms;
	bool from_access;
	bool from_access;
	unsigned __flags = mask & MAY_NOT_BLOCK ? IPERM_FLAG_RCU : 0;
	unsigned flags = mask & MAY_NOT_BLOCK;


	from_access = mask & MAY_ACCESS;
	from_access = mask & MAY_ACCESS;
	mask &= (MAY_READ|MAY_WRITE|MAY_EXEC|MAY_APPEND);
	mask &= (MAY_READ|MAY_WRITE|MAY_EXEC|MAY_APPEND);
@@ -2682,7 +2682,7 @@ static int selinux_inode_permission(struct inode *inode, int mask)


	perms = file_mask_to_av(inode->i_mode, mask);
	perms = file_mask_to_av(inode->i_mode, mask);


	return inode_has_perm(cred, inode, perms, &ad, __flags);
	return inode_has_perm(cred, inode, perms, &ad, flags);
}
}


static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr)
static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr)