From ea140db712dfed29f4484f6742cc198382a21c3c Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Mon, 12 Feb 2024 13:08:12 -0800 Subject: [PATCH 1/2] libct/nsenter: rm unused code Commits b999376f and b999376f removed all users of this code. Signed-off-by: Kir Kolyshkin --- libcontainer/nsenter/ipc.c | 84 ----------------------------------- libcontainer/nsenter/ipc.h | 12 ----- libcontainer/nsenter/nsexec.c | 1 - 3 files changed, 97 deletions(-) delete mode 100644 libcontainer/nsenter/ipc.c delete mode 100644 libcontainer/nsenter/ipc.h diff --git a/libcontainer/nsenter/ipc.c b/libcontainer/nsenter/ipc.c deleted file mode 100644 index 01321a718..000000000 --- a/libcontainer/nsenter/ipc.c +++ /dev/null @@ -1,84 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include -#include -#include "ipc.h" -#include "log.h" - -int receive_fd(int sockfd) -{ - int bytes_read; - struct msghdr msg = { }; - struct cmsghdr *cmsg; - struct iovec iov = { }; - char null_byte = '\0'; - int ret; - int fd_count; - - iov.iov_base = &null_byte; - iov.iov_len = 1; - - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - - msg.msg_controllen = CMSG_SPACE(sizeof(int)); - msg.msg_control = malloc(msg.msg_controllen); - if (msg.msg_control == NULL) { - bail("Can't allocate memory to receive fd."); - } - - memset(msg.msg_control, 0, msg.msg_controllen); - - bytes_read = recvmsg(sockfd, &msg, MSG_CMSG_CLOEXEC); - if (bytes_read != 1) - bail("failed to receive fd from unix socket %d", sockfd); - if (msg.msg_flags & MSG_CTRUNC) - bail("received truncated control message from unix socket %d", sockfd); - - cmsg = CMSG_FIRSTHDR(&msg); - if (!cmsg) - bail("received message from unix socket %d without control message", sockfd); - - if (cmsg->cmsg_level != SOL_SOCKET) - bail("received unknown control message from unix socket %d: cmsg_level=%d", sockfd, cmsg->cmsg_level); - - if (cmsg->cmsg_type != SCM_RIGHTS) - bail("received unknown control message from unix socket %d: cmsg_type=%d", sockfd, cmsg->cmsg_type); - - fd_count = (cmsg->cmsg_len - CMSG_LEN(0)) / sizeof(int); - if (fd_count != 1) - bail("received control message from unix socket %d with too many fds: %d", sockfd, fd_count); - - ret = *(int *)CMSG_DATA(cmsg); - free(msg.msg_control); - return ret; -} - -int send_fd(int sockfd, int fd) -{ - struct msghdr msg = { }; - struct cmsghdr *cmsg; - struct iovec iov[1] = { }; - char null_byte = '\0'; - - iov[0].iov_base = &null_byte; - iov[0].iov_len = 1; - - msg.msg_iov = iov; - msg.msg_iovlen = 1; - - /* We send only one fd as specified by cmsg->cmsg_len below, even - * though msg.msg_controllen might have more space due to alignment. */ - msg.msg_controllen = CMSG_SPACE(sizeof(int)); - msg.msg_control = alloca(msg.msg_controllen); - memset(msg.msg_control, 0, msg.msg_controllen); - - cmsg = CMSG_FIRSTHDR(&msg); - cmsg->cmsg_level = SOL_SOCKET; - cmsg->cmsg_type = SCM_RIGHTS; - cmsg->cmsg_len = CMSG_LEN(sizeof(int)); - memcpy(CMSG_DATA(cmsg), &fd, sizeof(int)); - - return sendmsg(sockfd, &msg, 0); -} diff --git a/libcontainer/nsenter/ipc.h b/libcontainer/nsenter/ipc.h deleted file mode 100644 index 6e5972697..000000000 --- a/libcontainer/nsenter/ipc.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef NSENTER_IPC_H -#define NSENTER_IPC_H - -int receive_fd(int sockfd); - -/* - * send_fd passes the open file descriptor fd to another process via the UNIX - * domain socket sockfd. The return value of the sendmsg(2) call is returned. - */ -int send_fd(int sockfd, int fd); - -#endif /* NSENTER_IPC_H */ diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c index bfc6a79a8..adfc0d41a 100644 --- a/libcontainer/nsenter/nsexec.c +++ b/libcontainer/nsenter/nsexec.c @@ -28,7 +28,6 @@ #include #include "getenv.h" -#include "ipc.h" #include "log.h" /* Get all of the CLONE_NEW* flags. */ #include "namespace.h" From 3a9859bdc0e4507cb57fb46fd10b422702cfda62 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Mon, 12 Feb 2024 13:17:47 -0800 Subject: [PATCH 2/2] libct/nsenter: rm unused include This was added by commit 9c444070 (to use LONG_MAX and INT_MAX) but the code was later removed by commit ba0b5e26. Signed-off-by: Kir Kolyshkin --- libcontainer/nsenter/nsexec.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c index adfc0d41a..c771ac7e1 100644 --- a/libcontainer/nsenter/nsexec.c +++ b/libcontainer/nsenter/nsexec.c @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include