selftests/namespaces: eigth inactive namespace resurrection test

Test IPv6 sockets also work with SIOCGSKNS.

Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-62-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
Christian Brauner
2025-10-29 13:21:15 +01:00
parent 54a29d1233
commit 6de17ec3cc

View File

@@ -542,4 +542,38 @@ TEST(siocgskns_netns_lifecycle)
close(sock_fd);
}
/*
* Test IPv6 sockets also work with SIOCGSKNS.
*/
TEST(siocgskns_ipv6)
{
int sock_fd, netns_fd, current_netns_fd;
struct stat st1, st2;
/* Create an IPv6 TCP socket */
sock_fd = socket(AF_INET6, SOCK_STREAM, 0);
ASSERT_GE(sock_fd, 0);
/* Use SIOCGSKNS */
netns_fd = ioctl(sock_fd, SIOCGSKNS);
if (netns_fd < 0) {
close(sock_fd);
if (errno == ENOTTY || errno == EINVAL)
SKIP(return, "SIOCGSKNS not supported");
ASSERT_GE(netns_fd, 0);
}
/* Verify it matches current namespace */
current_netns_fd = open("/proc/self/ns/net", O_RDONLY);
ASSERT_GE(current_netns_fd, 0);
ASSERT_EQ(fstat(netns_fd, &st1), 0);
ASSERT_EQ(fstat(current_netns_fd, &st2), 0);
ASSERT_EQ(st1.st_ino, st2.st_ino);
close(sock_fd);
close(netns_fd);
close(current_netns_fd);
}
TEST_HARNESS_MAIN