SMACK: Free the i_security blob in inode using RCU
authorHimanshu Shukla <himanshu.sh@samsung.com>
Wed, 23 Nov 2016 06:29:19 +0000 (11:59 +0530)
committerCasey Schaufler <casey@schaufler-ca.com>
Tue, 10 Jan 2017 17:47:20 +0000 (09:47 -0800)
commit3d4f673a6988f57e6f6ccd1a3b79eee171545e08
tree9247044b309b7395a75f92b4e9247adad3eb6e5a
parentd54a197964e7eb636a0c64fb0dbdd67759eb71f2
SMACK: Free the i_security blob in inode using RCU

There is race condition issue while freeing the i_security blob in SMACK
module. There is existing condition where i_security can be freed while
inode_permission is called from path lookup on second CPU. There has been
observed the page fault with such condition. VFS code and Selinux module
takes care of this condition by freeing the inode and i_security field
using RCU via call_rcu(). But in SMACK directly the i_secuirty blob is
being freed. Use call_rcu() to fix this race condition issue.

Signed-off-by: Himanshu Shukla <himanshu.sh@samsung.com>
Signed-off-by: Vishal Goel <vishal.goel@samsung.com>
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
security/smack/smack.h
security/smack/smack_lsm.c