selinux: Fix selinux_sb_mnt_opts_compat()
[ Upstream commit
e245610944fbed0f31726102107f21e8b6b7c57d ]
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: b74495364134 ("selinux: fix sleeping function called from invalid context")
Fixes: 97417fc8bc8f ("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>