selinux: Fix selinux_sb_mnt_opts_compat()
authorScott Mayhew <smayhew@redhat.com>
Mon, 31 Jan 2022 18:57:36 +0000 (13:57 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:05 +0000 (14:23 +0200)
commit486d4c18f207eef95459f3258238eab418c3c4e9
tree8f5bd6bc8b5da8eb3e35212277a13ef08c949e34
parentc111b3c1a257022dcf36822ce6d0a2492f52cf1b
selinux: Fix selinux_sb_mnt_opts_compat()

[ Upstream commit b8b87fd954b4b1bdd2d739c8f50bf685351a1a94 ]

selinux_sb_mnt_opts_compat() is called under the sb_lock spinlock and
shouldn't be performing any memory allocations.  Fix this by parsing the
sids at the same time we're chopping up the security mount options
string and then using the pre-parsed sids when doing the comparison.

Fixes: cc274ae7763d ("selinux: fix sleeping function called from invalid context")
Fixes: 69c4a42d72eb ("lsm,selinux: add new hook to compare new mount to an existing mount")
Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
security/selinux/hooks.c