]> git.karo-electronics.de Git - karo-tx-linux.git/commit
Smack: fix d_instantiate logic for sockfs and pipefs
authorRafal Krypa <r.krypa@samsung.com>
Fri, 9 Dec 2016 13:03:04 +0000 (14:03 +0100)
committerCasey Schaufler <casey@schaufler-ca.com>
Tue, 10 Jan 2017 17:47:20 +0000 (09:47 -0800)
commit805b65a80bed029572c6462cc4be0a260e1482e9
treef21d839811af68fe82c609cf3bdb7b32d33f1c5e
parentc9d238a18baa92600ba015d6d6c2cde53f55c572
Smack: fix d_instantiate logic for sockfs and pipefs

Since 4b936885a (v2.6.32) all inodes on sockfs and pipefs are disconnected.
It caused filesystem specific code in smack_d_instantiate to be skipped,
because all inodes on those pseudo filesystems were treated as root inodes.
As a result all sockfs inodes had the Smack label set to floor.

In most cases access checks for sockets use socket_smack data so the inode
label is not important. But there are special cases that were broken.
One example would be calling fcntl with F_SETOWN command on a socket fd.

Now smack_d_instantiate expects all pipefs and sockfs inodes to be
disconnected and has the logic in appropriate place.

Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
security/smack/smack_lsm.c