Commit c88c6b2d authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'selftest-af_unix-enable-wall-and-wflex-array-member-not-at-end'

Kuniyuki Iwashima says:

====================
selftest: af_unix: Enable -Wall and -Wflex-array-member-not-at-end.

This series fix 4 warnings caught by -Wall and
-Wflex-array-member-not-at-end.
====================

Link: https://patch.msgid.link/20250811215432.3379570-1-kuniyu@google.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents b1987f1e 1838731f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
CFLAGS += $(KHDR_INCLUDES)
CFLAGS += $(KHDR_INCLUDES) -Wall -Wflex-array-member-not-at-end
TEST_GEN_PROGS := diag_uid msg_oob scm_inq scm_pidfd scm_rights unix_connect

include ../../lib.mk
+12 −14
Original line number Diff line number Diff line
@@ -11,11 +11,6 @@
#define NR_CHUNKS	100
#define MSG_LEN		256

struct scm_inq {
	struct cmsghdr cmsghdr;
	int inq;
};

FIXTURE(scm_inq)
{
	int fd[2];
@@ -70,35 +65,38 @@ static void send_chunks(struct __test_metadata *_metadata,
static void recv_chunks(struct __test_metadata *_metadata,
			FIXTURE_DATA(scm_inq) *self)
{
	char cmsg_buf[CMSG_SPACE(sizeof(int))];
	struct msghdr msg = {};
	struct iovec iov = {};
	struct scm_inq cmsg;
	struct cmsghdr *cmsg;
	char buf[MSG_LEN];
	int i, ret;
	int inq;

	msg.msg_iov = &iov;
	msg.msg_iovlen = 1;
	msg.msg_control = &cmsg;
	msg.msg_controllen = CMSG_SPACE(sizeof(cmsg.inq));
	msg.msg_control = cmsg_buf;
	msg.msg_controllen = sizeof(cmsg_buf);

	iov.iov_base = buf;
	iov.iov_len = sizeof(buf);

	for (i = 0; i < NR_CHUNKS; i++) {
		memset(buf, 0, sizeof(buf));
		memset(&cmsg, 0, sizeof(cmsg));
		memset(cmsg_buf, 0, sizeof(cmsg_buf));

		ret = recvmsg(self->fd[1], &msg, 0);
		ASSERT_EQ(MSG_LEN, ret);
		ASSERT_NE(NULL, CMSG_FIRSTHDR(&msg));
		ASSERT_EQ(CMSG_LEN(sizeof(cmsg.inq)), cmsg.cmsghdr.cmsg_len);
		ASSERT_EQ(SOL_SOCKET, cmsg.cmsghdr.cmsg_level);
		ASSERT_EQ(SCM_INQ, cmsg.cmsghdr.cmsg_type);

		cmsg = CMSG_FIRSTHDR(&msg);
		ASSERT_NE(NULL, cmsg);
		ASSERT_EQ(CMSG_LEN(sizeof(int)), cmsg->cmsg_len);
		ASSERT_EQ(SOL_SOCKET, cmsg->cmsg_level);
		ASSERT_EQ(SCM_INQ, cmsg->cmsg_type);

		ret = ioctl(self->fd[1], SIOCINQ, &inq);
		ASSERT_EQ(0, ret);
		ASSERT_EQ(cmsg.inq, inq);
		ASSERT_EQ(*(int *)CMSG_DATA(cmsg), inq);
	}
}

+0 −2
Original line number Diff line number Diff line
@@ -137,7 +137,6 @@ struct cmsg_data {
static int parse_cmsg(struct msghdr *msg, struct cmsg_data *res)
{
	struct cmsghdr *cmsg;
	int data = 0;

	if (msg->msg_flags & (MSG_TRUNC | MSG_CTRUNC)) {
		log_err("recvmsg: truncated");
@@ -243,7 +242,6 @@ static int cmsg_check_dead(int fd, int expected_pid)
	int data = 0;
	char control[CMSG_SPACE(sizeof(struct ucred)) +
		     CMSG_SPACE(sizeof(int))] = { 0 };
	pid_t client_pid;
	struct pidfd_info info = {
		.mask = PIDFD_INFO_EXIT,
	};
+13 −15
Original line number Diff line number Diff line
@@ -271,20 +271,11 @@ void __send_fd(struct __test_metadata *_metadata,
{
#define MSG "x"
#define MSGLEN 1
	struct {
		struct cmsghdr cmsghdr;
		int fd[2];
	} cmsg = {
		.cmsghdr = {
			.cmsg_len = CMSG_LEN(sizeof(cmsg.fd)),
			.cmsg_level = SOL_SOCKET,
			.cmsg_type = SCM_RIGHTS,
		},
		.fd = {
	int fds[2] = {
		self->fd[inflight * 2],
		self->fd[inflight * 2],
		},
	};
	char cmsg_buf[CMSG_SPACE(sizeof(fds))];
	struct iovec iov = {
		.iov_base = MSG,
		.iov_len = MSGLEN,
@@ -294,11 +285,18 @@ void __send_fd(struct __test_metadata *_metadata,
		.msg_namelen = 0,
		.msg_iov = &iov,
		.msg_iovlen = 1,
		.msg_control = &cmsg,
		.msg_controllen = CMSG_SPACE(sizeof(cmsg.fd)),
		.msg_control = cmsg_buf,
		.msg_controllen = sizeof(cmsg_buf),
	};
	struct cmsghdr *cmsg;
	int ret;

	cmsg = CMSG_FIRSTHDR(&msg);
	cmsg->cmsg_level = SOL_SOCKET;
	cmsg->cmsg_type = SCM_RIGHTS;
	cmsg->cmsg_len = CMSG_LEN(sizeof(fds));
	memcpy(CMSG_DATA(cmsg), fds, sizeof(fds));

	ret = sendmsg(self->fd[receiver * 2 + 1], &msg, variant->flags);

	if (variant->disabled) {