diff options
author | Florian Weimer <fweimer@redhat.com> | 2022-01-24 18:14:24 +0100 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2022-08-18 00:14:28 +0200 |
commit | 0a167374fdcb15b022ed92633719120e3c6bebcd (patch) | |
tree | 0872d976fccfa68a38fe446e4692b74968737356 /sysdeps/unix/sysv/linux | |
parent | 4ad1659d8c024953b11c2f0fef2219529171da7e (diff) | |
download | glibc-0a167374fdcb15b022ed92633719120e3c6bebcd.tar.gz glibc-0a167374fdcb15b022ed92633719120e3c6bebcd.tar.xz glibc-0a167374fdcb15b022ed92633719120e3c6bebcd.zip |
Linux: Detect user namespace support in io/tst-getcwd-smallbuff
Otherwise the test fails with certain container runtimes. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> (cherry picked from commit 5b8e7980c5dabd9aaefeba4f0208baa8cf7653ee)
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c index d460d6e766..55362f6060 100644 --- a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c +++ b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c @@ -34,6 +34,7 @@ #include <sys/un.h> #include <support/check.h> #include <support/temp_file.h> +#include <support/test-driver.h> #include <support/xsched.h> #include <support/xunistd.h> @@ -188,6 +189,23 @@ do_test (void) xmkdir (MOUNT_NAME, S_IRWXU); atexit (do_cleanup); + /* Check whether user namespaces are supported. */ + { + pid_t pid = xfork (); + if (pid == 0) + { + if (unshare (CLONE_NEWUSER | CLONE_NEWNS) != 0) + _exit (EXIT_UNSUPPORTED); + else + _exit (0); + } + int status; + xwaitpid (pid, &status, 0); + TEST_VERIFY_EXIT (WIFEXITED (status)); + if (WEXITSTATUS (status) != 0) + return WEXITSTATUS (status); + } + TEST_VERIFY_EXIT (socketpair (AF_UNIX, SOCK_STREAM, 0, sockfd) == 0); pid_t child_pid = xclone (child_func, NULL, child_stack, sizeof (child_stack), |