Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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: Jakub Kicinski <kuba@kernel.org>

+26 -32
+1 -1
tools/testing/selftests/net/af_unix/Makefile
··· 1 - CFLAGS += $(KHDR_INCLUDES) 1 + CFLAGS += $(KHDR_INCLUDES) -Wall -Wflex-array-member-not-at-end 2 2 TEST_GEN_PROGS := diag_uid msg_oob scm_inq scm_pidfd scm_rights unix_connect 3 3 4 4 include ../../lib.mk
+12 -14
tools/testing/selftests/net/af_unix/scm_inq.c
··· 11 11 #define NR_CHUNKS 100 12 12 #define MSG_LEN 256 13 13 14 - struct scm_inq { 15 - struct cmsghdr cmsghdr; 16 - int inq; 17 - }; 18 - 19 14 FIXTURE(scm_inq) 20 15 { 21 16 int fd[2]; ··· 65 70 static void recv_chunks(struct __test_metadata *_metadata, 66 71 FIXTURE_DATA(scm_inq) *self) 67 72 { 73 + char cmsg_buf[CMSG_SPACE(sizeof(int))]; 68 74 struct msghdr msg = {}; 69 75 struct iovec iov = {}; 70 - struct scm_inq cmsg; 76 + struct cmsghdr *cmsg; 71 77 char buf[MSG_LEN]; 72 78 int i, ret; 73 79 int inq; 74 80 75 81 msg.msg_iov = &iov; 76 82 msg.msg_iovlen = 1; 77 - msg.msg_control = &cmsg; 78 - msg.msg_controllen = CMSG_SPACE(sizeof(cmsg.inq)); 83 + msg.msg_control = cmsg_buf; 84 + msg.msg_controllen = sizeof(cmsg_buf); 79 85 80 86 iov.iov_base = buf; 81 87 iov.iov_len = sizeof(buf); 82 88 83 89 for (i = 0; i < NR_CHUNKS; i++) { 84 90 memset(buf, 0, sizeof(buf)); 85 - memset(&cmsg, 0, sizeof(cmsg)); 91 + memset(cmsg_buf, 0, sizeof(cmsg_buf)); 86 92 87 93 ret = recvmsg(self->fd[1], &msg, 0); 88 94 ASSERT_EQ(MSG_LEN, ret); 89 - ASSERT_NE(NULL, CMSG_FIRSTHDR(&msg)); 90 - ASSERT_EQ(CMSG_LEN(sizeof(cmsg.inq)), cmsg.cmsghdr.cmsg_len); 91 - ASSERT_EQ(SOL_SOCKET, cmsg.cmsghdr.cmsg_level); 92 - ASSERT_EQ(SCM_INQ, cmsg.cmsghdr.cmsg_type); 95 + 96 + cmsg = CMSG_FIRSTHDR(&msg); 97 + ASSERT_NE(NULL, cmsg); 98 + ASSERT_EQ(CMSG_LEN(sizeof(int)), cmsg->cmsg_len); 99 + ASSERT_EQ(SOL_SOCKET, cmsg->cmsg_level); 100 + ASSERT_EQ(SCM_INQ, cmsg->cmsg_type); 93 101 94 102 ret = ioctl(self->fd[1], SIOCINQ, &inq); 95 103 ASSERT_EQ(0, ret); 96 - ASSERT_EQ(cmsg.inq, inq); 104 + ASSERT_EQ(*(int *)CMSG_DATA(cmsg), inq); 97 105 } 98 106 } 99 107
-2
tools/testing/selftests/net/af_unix/scm_pidfd.c
··· 137 137 static int parse_cmsg(struct msghdr *msg, struct cmsg_data *res) 138 138 { 139 139 struct cmsghdr *cmsg; 140 - int data = 0; 141 140 142 141 if (msg->msg_flags & (MSG_TRUNC | MSG_CTRUNC)) { 143 142 log_err("recvmsg: truncated"); ··· 242 243 int data = 0; 243 244 char control[CMSG_SPACE(sizeof(struct ucred)) + 244 245 CMSG_SPACE(sizeof(int))] = { 0 }; 245 - pid_t client_pid; 246 246 struct pidfd_info info = { 247 247 .mask = PIDFD_INFO_EXIT, 248 248 };
+13 -15
tools/testing/selftests/net/af_unix/scm_rights.c
··· 271 271 { 272 272 #define MSG "x" 273 273 #define MSGLEN 1 274 - struct { 275 - struct cmsghdr cmsghdr; 276 - int fd[2]; 277 - } cmsg = { 278 - .cmsghdr = { 279 - .cmsg_len = CMSG_LEN(sizeof(cmsg.fd)), 280 - .cmsg_level = SOL_SOCKET, 281 - .cmsg_type = SCM_RIGHTS, 282 - }, 283 - .fd = { 284 - self->fd[inflight * 2], 285 - self->fd[inflight * 2], 286 - }, 274 + int fds[2] = { 275 + self->fd[inflight * 2], 276 + self->fd[inflight * 2], 287 277 }; 278 + char cmsg_buf[CMSG_SPACE(sizeof(fds))]; 288 279 struct iovec iov = { 289 280 .iov_base = MSG, 290 281 .iov_len = MSGLEN, ··· 285 294 .msg_namelen = 0, 286 295 .msg_iov = &iov, 287 296 .msg_iovlen = 1, 288 - .msg_control = &cmsg, 289 - .msg_controllen = CMSG_SPACE(sizeof(cmsg.fd)), 297 + .msg_control = cmsg_buf, 298 + .msg_controllen = sizeof(cmsg_buf), 290 299 }; 300 + struct cmsghdr *cmsg; 291 301 int ret; 302 + 303 + cmsg = CMSG_FIRSTHDR(&msg); 304 + cmsg->cmsg_level = SOL_SOCKET; 305 + cmsg->cmsg_type = SCM_RIGHTS; 306 + cmsg->cmsg_len = CMSG_LEN(sizeof(fds)); 307 + memcpy(CMSG_DATA(cmsg), fds, sizeof(fds)); 292 308 293 309 ret = sendmsg(self->fd[receiver * 2 + 1], &msg, variant->flags); 294 310