]> git.ipfire.org Git - thirdparty/linux.git/commit
security: Add KUnit tests for kuid_root_in_ns and vfsuid_root_in_currentns
authorRyan Foster <foster.ryan.r@gmail.com>
Wed, 7 Jan 2026 21:51:28 +0000 (13:51 -0800)
committerSerge Hallyn <sergeh@kernel.org>
Fri, 9 Jan 2026 17:28:28 +0000 (11:28 -0600)
commit24e9b431b5837bc9d2cf2c2fde4abf507e2fae19
tree22a861e33cb8b5c83c98d8833303c2c81d2e858e
parent9ace4753a5202b02191d54e9fdf7f9e3d02b85eb
security: Add KUnit tests for kuid_root_in_ns and vfsuid_root_in_currentns

Add comprehensive KUnit tests for the namespace-related capability
functions that Serge Hallyn refactored in commit 9891d2f79a9f
("Clarify the rootid_owns_currentns").

The tests verify:
- Basic functionality: UID 0 in init namespace, invalid vfsuid,
  non-zero UIDs
- Actual namespace traversal: Creating user namespaces with different
  UID mappings where uid 0 maps to different kuids (e.g., 1000, 2000,
  3000)
- Hierarchy traversal: Testing multiple nested namespaces to verify
  correct namespace hierarchy traversal

This addresses the feedback to "test the actual functionality" by
creating real user namespaces with different values for the
namespace's uid 0, rather than just basic input validation.

The test file is included at the end of commoncap.c when
CONFIG_SECURITY_COMMONCAP_KUNIT_TEST is enabled, following the
standard kernel pattern (e.g., scsi_lib.c, ext4/mballoc.c). This
allows tests to access static functions in the same compilation unit
without modifying production code based on test configuration.

The tests require CONFIG_USER_NS to be enabled since they rely on user
namespace mapping functionality. The Kconfig dependency ensures the
tests only build when this requirement is met.

All 7 tests pass:
- test_vfsuid_root_in_currentns_init_ns
- test_vfsuid_root_in_currentns_invalid
- test_vfsuid_root_in_currentns_nonzero
- test_kuid_root_in_ns_init_ns_uid0
- test_kuid_root_in_ns_init_ns_nonzero
- test_kuid_root_in_ns_with_mapping
- test_kuid_root_in_ns_with_different_mappings

Updated MAINTAINER capabilities to include commoncap test

Signed-off-by: Ryan Foster <foster.ryan.r@gmail.com>
Signed-off-by: Serge Hallyn <sergeh@kernel.org>
MAINTAINERS
security/Kconfig
security/commoncap.c
security/commoncap_test.c [new file with mode: 0644]