projects/linux·commit e817c2f3

selinux: Don't sleep inside inode_getsecid hook

e817c2f3 · Andreas Gruenbacher <[email protected]> · 2016-02-18 12:04:08 +01:00

The inode_getsecid hook is called from contexts in which sleeping is not
allowed, so we cannot revalidate inode security labels from there. Use
the non-validating version of inode_security() instead.

Reported-by: Benjamin Coddington <[email protected]>
Signed-off-by: Andreas Gruenbacher <[email protected]>
Acked-by: Stephen Smalley <[email protected]>
Signed-off-by: Paul Moore <[email protected]>
Commit
e817c2f33efb4aa7f02c98dfab9a5f8ff383ea7e
Parents
b197367e

Changes

1 files changed · +1 −1

FileStatusAddDelContent
security/selinux/hooks.cmodified+1−1View file

security/selinux/hooks.c

View file
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index f8110cf..f1ab715 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3249,7 +3249,7 @@ static int selinux_inode_listsecurity(struct inode *inode, char *buffer, size_t
static void selinux_inode_getsecid(struct inode *inode, u32 *secid)
{
- struct inode_security_struct *isec = inode_security(inode);
+ struct inode_security_struct *isec = inode_security_novalidate(inode);
*secid = isec->sid;
}