sst-linux/fs/cachefiles
Max Kellermann f937130b8d cachefiles: Parse the "secctx" immediately
[ Upstream commit e5a8b6446c0d370716f193771ccacf3260a57534 ]

Instead of storing an opaque string, call security_secctx_to_secid()
right in the "secctx" command handler and store only the numeric
"secid".  This eliminates an unnecessary string allocation and allows
the daemon to receive errors when writing the "secctx" command instead
of postponing the error to the "bind" command handler.  For example,
if the kernel was built without `CONFIG_SECURITY`, "bind" will return
`EOPNOTSUPP`, but the daemon doesn't know why.  With this patch, the
"secctx" will instead return `EOPNOTSUPP` which is the right context
for this error.

This patch adds a boolean flag `have_secid` because I'm not sure if we
can safely assume that zero is the special secid value for "not set".
This appears to be true for SELinux, Smack and AppArmor, but since
this attribute is not documented, I'm unable to derive a stable
guarantee for that.

Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/20241209141554.638708-1-max.kellermann@ionos.com/
Link: https://lore.kernel.org/r/20241213135013.2964079-6-dhowells@redhat.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-01-23 17:17:12 +01:00
..
cache.c
daemon.c cachefiles: Parse the "secctx" immediately 2025-01-23 17:17:12 +01:00
error_inject.c
interface.c
internal.h cachefiles: Parse the "secctx" immediately 2025-01-23 17:17:12 +01:00
io.c
Kconfig
key.c
main.c
Makefile
namei.c
ondemand.c
security.c cachefiles: Parse the "secctx" immediately 2025-01-23 17:17:12 +01:00
volume.c
xattr.c