From a1579f6bf657d3906de47819e8fd773e2452de0f Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Wed, 19 Feb 2025 11:01:52 +0100 Subject: selftests/ovl: add third selftest for "override_creds" Add a simple test to verify that the new "override_creds" option works. Link: https://lore.kernel.org/r/20250219-work-overlayfs-v3-4-46af55e4ceda@kernel.org Reviewed-by: Amir Goldstein Signed-off-by: Christian Brauner --- tools/testing/selftests/filesystems/utils.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tools/testing/selftests/filesystems/utils.c') diff --git a/tools/testing/selftests/filesystems/utils.c b/tools/testing/selftests/filesystems/utils.c index 0e8080bd0aea..e553c89c5b19 100644 --- a/tools/testing/selftests/filesystems/utils.c +++ b/tools/testing/selftests/filesystems/utils.c @@ -472,3 +472,30 @@ out: cap_free(caps); return fret; } + +/* cap_down - lower an effective cap */ +int cap_down(cap_value_t down) +{ + bool fret = false; + cap_t caps = NULL; + cap_value_t cap = down; + int ret = -1; + + caps = cap_get_proc(); + if (!caps) + goto out; + + ret = cap_set_flag(caps, CAP_EFFECTIVE, 1, &cap, 0); + if (ret) + goto out; + + ret = cap_set_proc(caps); + if (ret) + goto out; + + fret = true; + +out: + cap_free(caps); + return fret; +} -- cgit