mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user