|
@@ -2770,6 +2770,7 @@ static int selinux_inode_follow_link(struct dentry *dentry, struct nameidata *na
|
|
|
|
|
|
static noinline int audit_inode_permission(struct inode *inode,
|
|
|
u32 perms, u32 audited, u32 denied,
|
|
|
+ int result,
|
|
|
unsigned flags)
|
|
|
{
|
|
|
struct common_audit_data ad;
|
|
@@ -2780,7 +2781,7 @@ static noinline int audit_inode_permission(struct inode *inode,
|
|
|
ad.u.inode = inode;
|
|
|
|
|
|
rc = slow_avc_audit(current_sid(), isec->sid, isec->sclass, perms,
|
|
|
- audited, denied, &ad, flags);
|
|
|
+ audited, denied, result, &ad, flags);
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
return 0;
|
|
@@ -2822,7 +2823,7 @@ static int selinux_inode_permission(struct inode *inode, int mask)
|
|
|
if (likely(!audited))
|
|
|
return rc;
|
|
|
|
|
|
- rc2 = audit_inode_permission(inode, perms, audited, denied, flags);
|
|
|
+ rc2 = audit_inode_permission(inode, perms, audited, denied, rc, flags);
|
|
|
if (rc2)
|
|
|
return rc2;
|
|
|
return rc;
|