Date: Mon, 16 Mar 2026 19:49:14 +0000 From: Dries Michiels <driesm@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 78e749651307 - main - net/dhcpcd: update to 10.3.1 Message-ID: <69b85eba.3a5aa.5e5e5756@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by driesm: URL: https://cgit.FreeBSD.org/ports/commit/?id=78e749651307d9fcb263dfa7a1501bda0ac37a74 commit 78e749651307d9fcb263dfa7a1501bda0ac37a74 Author: Dries Michiels <driesm@FreeBSD.org> AuthorDate: 2026-03-16 19:45:21 +0000 Commit: Dries Michiels <driesm@FreeBSD.org> CommitDate: 2026-03-16 19:48:29 +0000 net/dhcpcd: update to 10.3.1 Changes: https://github.com/NetworkConfiguration/dhcpcd/releases/tag/v10.3.1 --- net/dhcpcd/Makefile | 3 +- net/dhcpcd/distinfo | 6 +-- net/dhcpcd/files/patch-src_privsep-root.c | 84 ------------------------------- 3 files changed, 4 insertions(+), 89 deletions(-) diff --git a/net/dhcpcd/Makefile b/net/dhcpcd/Makefile index acf4c397cef2..eee3a628394f 100644 --- a/net/dhcpcd/Makefile +++ b/net/dhcpcd/Makefile @@ -1,6 +1,5 @@ PORTNAME= dhcpcd -DISTVERSION= 10.3.0 -PORTREVISION= 1 +DISTVERSION= 10.3.1 CATEGORIES= net MASTER_SITES= https://github.com/NetworkConfiguration/${PORTNAME}/releases/download/v${DISTVERSION}/ diff --git a/net/dhcpcd/distinfo b/net/dhcpcd/distinfo index f4c96d61e86f..1e5bbc458d38 100644 --- a/net/dhcpcd/distinfo +++ b/net/dhcpcd/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1763136225 -SHA256 (dhcpcd-10.3.0.tar.xz) = 06e4c1aaf958523f3fd1c57258c613c6c7ae56b8f1d678fa7943495d5ea6aeb5 -SIZE (dhcpcd-10.3.0.tar.xz) = 279100 +TIMESTAMP = 1773690314 +SHA256 (dhcpcd-10.3.1.tar.xz) = 1aed450dfd22f280a64f7e5feee148d29727c292a3d1819287cf4f98b12d4a68 +SIZE (dhcpcd-10.3.1.tar.xz) = 279320 diff --git a/net/dhcpcd/files/patch-src_privsep-root.c b/net/dhcpcd/files/patch-src_privsep-root.c deleted file mode 100644 index c57d5422622d..000000000000 --- a/net/dhcpcd/files/patch-src_privsep-root.c +++ /dev/null @@ -1,84 +0,0 @@ ---- src/privsep-root.c.orig 2025-11-14 15:38:04 UTC -+++ src/privsep-root.c -@@ -86,6 +86,7 @@ ps_root_readerrorcb(struct psr_ctx *psr_ctx) - { .iov_base = psr_error, .iov_len = sizeof(*psr_error) }, - { .iov_base = NULL, .iov_len = 0 }, - }; -+ struct msghdr msg = { .msg_iov = iov, .msg_iovlen = __arraycount(iov) }; - ssize_t len; - - #define PSR_ERROR(e) \ -@@ -98,37 +99,58 @@ ps_root_readerrorcb(struct psr_ctx *psr_ctx) - if (eloop_waitfd(fd) == -1) - PSR_ERROR(errno); - -- len = recv(fd, psr_error, sizeof(*psr_error), MSG_PEEK); -+ /* We peek at the psr_error structure to tell us how much of a buffer -+ * we need to read the whole packet. */ -+ len = recvmsg(fd, &msg, MSG_PEEK | MSG_WAITALL); - if (len == -1) - PSR_ERROR(errno); -- else if ((size_t)len < sizeof(*psr_error)) -- PSR_ERROR(EINVAL); - -- if (psr_error->psr_datalen > SSIZE_MAX) -- PSR_ERROR(ENOBUFS); -+ /* After this point, we MUST do another recvmsg even on a failure -+ * to remove the message after peeking. */ -+ if ((size_t)len < sizeof(*psr_error)) -+ goto recv; -+ - if (psr_ctx->psr_usemdata && - psr_error->psr_datalen > psr_ctx->psr_mdatalen) - { - void *d = realloc(psr_ctx->psr_mdata, psr_error->psr_datalen); -- if (d == NULL) -- PSR_ERROR(errno); -- psr_ctx->psr_mdata = d; -- psr_ctx->psr_mdatalen = psr_error->psr_datalen; -+ -+ /* If we failed to malloc then psr_mdatalen will be smaller -+ * than psr_datalen. -+ * The following recvmsg will get MSG_TRUNC so the malloc error -+ * will be reported there but more importantly the -+ * message will be correctly discarded from the queue. */ -+ if (d != NULL) { -+ psr_ctx->psr_mdata = d; -+ psr_ctx->psr_mdatalen = psr_error->psr_datalen; -+ } - } - if (psr_error->psr_datalen != 0) { -- if (psr_ctx->psr_usemdata) -+ if (psr_ctx->psr_usemdata) { - iov[1].iov_base = psr_ctx->psr_mdata; -- else { -- if (psr_error->psr_datalen > psr_ctx->psr_datalen) -- PSR_ERROR(ENOBUFS); -+ /* psr_mdatalen could be smaller then psr_datalen -+ * if the above malloc failed. */ -+ iov[1].iov_len = -+ MIN(psr_ctx->psr_mdatalen, psr_error->psr_datalen); -+ } else { - iov[1].iov_base = psr_ctx->psr_data; -+ /* This should never be the case */ -+ iov[1].iov_len = -+ MIN(psr_ctx->psr_datalen, psr_error->psr_datalen); - } -- iov[1].iov_len = psr_error->psr_datalen; - } - -- len = readv(fd, iov, __arraycount(iov)); -+recv: -+ /* fd is SOCK_SEQPACKET and we mark the boundary with MSG_EOR -+ * so this can never stall if the receive buffers are bigger -+ * than the actual message. */ -+ len = recvmsg(fd, &msg, MSG_WAITALL); - if (len == -1) - PSR_ERROR(errno); -+ else if ((size_t)len < sizeof(*psr_error)) -+ PSR_ERROR(EINVAL); -+ else if (msg.msg_flags & MSG_TRUNC) -+ PSR_ERROR(ENOBUFS); - else if ((size_t)len != sizeof(*psr_error) + psr_error->psr_datalen) - PSR_ERROR(EINVAL); - return len;home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69b85eba.3a5aa.5e5e5756>
