Page MenuHomeFreeBSD

D57425.id179177.diff
No OneTemporary

D57425.id179177.diff

diff --git a/tests/sys/kern/unix_passfd_test.c b/tests/sys/kern/unix_passfd_test.c
--- a/tests/sys/kern/unix_passfd_test.c
+++ b/tests/sys/kern/unix_passfd_test.c
@@ -210,7 +210,7 @@
static ssize_t
recvfd_payload(int sockfd, int *recv_fd, void *buf, size_t buflen,
- size_t cmsgsz, int recvmsg_flags)
+ size_t cmsgsz, int recvmsg_flags, bool failok)
{
struct cmsghdr *cmsghdr;
struct msghdr msghdr;
@@ -233,9 +233,13 @@
msghdr.msg_iovlen = 1;
len = recvmsg(sockfd, &msghdr, recvmsg_flags);
+ if (len == -1 && failok)
+ return (len);
ATF_REQUIRE_MSG(len != -1, "recvmsg failed: %s", strerror(errno));
cmsghdr = CMSG_FIRSTHDR(&msghdr);
+ if (cmsghdr == NULL && failok)
+ return (len);
ATF_REQUIRE_MSG(cmsghdr != NULL,
"recvmsg: did not receive control message");
foundcreds = false;
@@ -267,7 +271,7 @@
char ch = 0;
len = recvfd_payload(sockfd, recv_fd, &ch, sizeof(ch),
- CMSG_SPACE(sizeof(int)), flags);
+ CMSG_SPACE(sizeof(int)), flags, false);
ATF_REQUIRE_MSG((size_t)len == sizeof(ch),
"recvmsg: %zd bytes received; expected %zd", len, sizeof(ch));
}
@@ -746,7 +750,8 @@
"sendmsg: %zd bytes sent, expected %lu", len, sendspace);
#endif
rlen = recvfd_payload(fd[1], &getfd, buf, len,
- CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + CMSG_SPACE(sizeof(int)), 0);
+ CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + CMSG_SPACE(sizeof(int)), 0,
+ false);
ATF_REQUIRE_MSG(rlen == len,
"recvmsg: %zd bytes received; expected %zd", rlen, len);
@@ -1052,7 +1057,7 @@
ATF_REQUIRE(close(putfd) == 0);
for (int i = 1; i <= 2; i++) {
rlen = recvfd_payload(fd[1], &getfd, buf, 2,
- CMSG_SPACE(sizeof(int)) * 2, 0);
+ CMSG_SPACE(sizeof(int)) * 2, 0, false);
ATF_REQUIRE_MSG(rlen == 1,
"recvmsg: %zd bytes received; expected 1", rlen);
ATF_REQUIRE(close(getfd) == 0);
@@ -1131,7 +1136,7 @@
/* Get a directory from outside the jail root. */
len = recvfd_payload(sock[1], &dfd, &ch, sizeof(ch),
- CMSG_SPACE(sizeof(int)), 0);
+ CMSG_SPACE(sizeof(int)), 0, false);
if (len == -1)
err(1, "recvmsg");

File Metadata

Mime Type
text/plain
Expires
Sat, Jun 13, 7:00 PM (1 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33742177
Default Alt Text
D57425.id179177.diff (2 KB)

Event Timeline