selinux: pre-allocate the status page
authorChristian Göttsche <cgzones@googlemail.com>
Fri, 5 Apr 2024 15:50:33 +0000 (17:50 +0200)
committerPaul Moore <paul@paul-moore.com>
Tue, 30 Apr 2024 23:01:04 +0000 (19:01 -0400)
commitfc983171e4c82460c0c16b65987d1c2ed76de2c7
tree0af8f3c1a309e4dde7afc8f5108a4dd3b31eca3c
parent4e551db0426472ca305a2f3284b25af763bfe57d
selinux: pre-allocate the status page

Since the status page is currently only allocated on first use, the
sequence number of the initial policyload (i.e. 1) is not stored,
leading to the observable sequence of 0, 2, 3, 4, ...

Try to pre-allocate the status page during the initialization of the
selinuxfs, so selinux_status_update_policyload() will set the sequence
number.

This brings the status page to return the actual sequence number for the
initial policy load, which is also observable via the netlink socket.
I could not find any occurrence where userspace depends on the actual
value returned by selinux_status_policyload(3), thus the breakage should
be unnoticed.

Closes: https://lore.kernel.org/selinux/87o7fmua12.fsf@redhat.com/
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
[PM: trimmed 'reported-by' that was missing an email]
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/selinuxfs.c