From nobody Mon Feb 2 21:20:35 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f4ffW479Wz6QYBV for ; Mon, 02 Feb 2026 21:20:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f4ffW0wXtz47J8 for ; Mon, 02 Feb 2026 21:20:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770067235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0ns/tmPf5xBmQ3dzQs1W0fXBYTnlaLTqfE1A9kwaf5A=; b=dyCgxzGsEGnuWbM9x+eSKGWynBL4Av/uAi0XQgI0smXas9ZAUc6AZ91pefKL3cpWZa7WAK /aJqob7M7i28Q9vfZZGCLd1xMcmpXceB0ZIPvqAkl7uFM0I3ptiB5IZ7ZDpvzPbs7v3jVL fwLDB0Bpyvv4Hbs++lSgg0FV1/jE2/8aZqaIcj7SM7oBpWGfs/nCGkMJWglYnR/lO1dlaL t4AhBk/9pGPsaJ8GiZGkyPss1QH9xTeE5zcf1+jznDREDoztFZSCP/D5YRW7M/pYQyN3or tFMypGnoC5Ve7NsnP+oROyku3Yjv6EzyDBJvqBze55ASKEifGc8Y/+QvdoX1hw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770067235; a=rsa-sha256; cv=none; b=ROP+9e/ASXuvB+Wg7DbiXUgChISYeu6/miq5EqrrldQ76i4zXC124XeyNS9O0TnRFdChzu sjQ2BpdtSW3BHciY70Jp1qmyOXMUW4bKFzzBK7T4UwK5UvJ4b39I0osWFnkwDDjk+VqbkH 3D/Y2rtGxRHFTDhcDILe6EYjnT8C1b2ALyIivIdl5zf5PEaAXJOUlI180ZMdF1+ImuxBim NpJA0HwhEh1pT0RfDdtJzhzAbswTNQv9QufEny3lHPy2tPSyUDzO3MPj5Kp7rHDENQGisD EHzZ/d4fN9EIsE7pEPaAfzoEb6oSShSB+kcmVG9y+LEGw4Q9kWbZTblAPFkG2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770067235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0ns/tmPf5xBmQ3dzQs1W0fXBYTnlaLTqfE1A9kwaf5A=; b=ulWZiwS5PSuBjMguofgD/AeXWBFEsWZqEnDinsBhdK+6sGtu9DOQjNMd0VK/m0M8uIxhfg WEI38VhRO3OS4xw/d5DlqFif6Cx8SzxORD4y4hHCGO6bwBQnR73Fv5tLqRwzEbL/InfaQJ nqalnnW5riS9CELvi71pGBLhX6VTMirBdPpU/+mi6ALKPisGMoEe+hW0+YHXWxFrixD4Eg WiEyiXgZmtZlzyQiHTa+C8BIFZsC+9ORXfgeQ7dLzIjpmcAklER/RIufyyiHkH/qBtZQbi OqjIyYBV5Zo5bnR4WTBzb9wm4bowiXTWCrbOPnzt0xbbnLSgkHqnA+oVC//JQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f4ffW0Wtrzk11 for ; Mon, 02 Feb 2026 21:20:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41327 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 02 Feb 2026 21:20:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brooks Davis Subject: git: e236502a997d - main - clnt_broadcast(3): fix eachresult argument type List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e236502a997da6bc94d018d5c5f79bfe17f0f1e7 Auto-Submitted: auto-generated Date: Mon, 02 Feb 2026 21:20:35 +0000 Message-Id: <69811523.41327.6964471e@gitrepo.freebsd.org> The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=e236502a997da6bc94d018d5c5f79bfe17f0f1e7 commit e236502a997da6bc94d018d5c5f79bfe17f0f1e7 Author: Brooks Davis AuthorDate: 2026-02-02 21:20:10 +0000 Commit: Brooks Davis CommitDate: 2026-02-02 21:20:10 +0000 clnt_broadcast(3): fix eachresult argument type The `eachresult` argument is documented to take a function pointer of type: bool_t (*)(caddr_t, struct sockaddr_in *) It was declared to take a resultproc_t which has historically been declared to be: bool_t (*resultproc_t)(caddr_t, ...); This overlapped well enough for currently supported ABIs where variadic arguments are passed in registers, but this declaration is misaligned with the documentation (resultproc_t takes three arguments) and will be fixed in a followup commit. Fix the type to be non-variadic, matching callbacks, and define a convenience type of as most callbacks take something other than a char * as their first argument and need to be cast. Effort: CHERI upstreaming Reviewed by: ngie, glebius, jhb Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D54940 --- include/rpc/pmap_clnt.h | 4 +++- lib/libc/rpc/rpc_soc.c | 5 +++-- usr.bin/rup/rup.c | 2 +- usr.bin/rusers/rusers.c | 2 +- usr.sbin/bootparamd/callbootd/callbootd.c | 4 ++-- usr.sbin/ypbind/ypbind.c | 2 +- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/rpc/pmap_clnt.h b/include/rpc/pmap_clnt.h index d3a67778530b..7d6cee307573 100644 --- a/include/rpc/pmap_clnt.h +++ b/include/rpc/pmap_clnt.h @@ -64,6 +64,8 @@ #include __BEGIN_DECLS +typedef bool_t (*clnt_broadcast_resultproc_t)(caddr_t, struct sockaddr_in *); + extern bool_t pmap_set(u_long, u_long, int, int); extern bool_t pmap_unset(u_long, u_long); extern struct pmaplist *pmap_getmaps(struct sockaddr_in *); @@ -75,7 +77,7 @@ extern enum clnt_stat pmap_rmtcall(struct sockaddr_in *, extern enum clnt_stat clnt_broadcast(u_long, u_long, u_long, xdrproc_t, void *, xdrproc_t, void *, - resultproc_t); + clnt_broadcast_resultproc_t); extern u_short pmap_getport(struct sockaddr_in *, u_long, u_long, u_int); __END_DECLS diff --git a/lib/libc/rpc/rpc_soc.c b/lib/libc/rpc/rpc_soc.c index 21a36cedf69f..e986593badf4 100644 --- a/lib/libc/rpc/rpc_soc.c +++ b/lib/libc/rpc/rpc_soc.c @@ -310,7 +310,7 @@ registerrpc(int prognum, int versnum, int procnum, * Support the earlier calling style of the callback function with a * per-thread temporary copy of the real callback. */ -static _Thread_local resultproc_t clnt_broadcast_result; +static _Thread_local clnt_broadcast_resultproc_t clnt_broadcast_result; /* * Need to translate the netbuf address into sockaddr_in address. @@ -336,7 +336,8 @@ rpc_wrap_bcast(char *resultp, struct netbuf *addr, struct netconfig *nconf) */ enum clnt_stat clnt_broadcast(u_long prog, u_long vers, u_long proc, xdrproc_t xargs, - void *argsp, xdrproc_t xresults, void *resultsp, resultproc_t eachresult) + void *argsp, xdrproc_t xresults, void *resultsp, + clnt_broadcast_resultproc_t eachresult) /* * u_long prog; // program number * u_long vers; // version number diff --git a/usr.bin/rup/rup.c b/usr.bin/rup/rup.c index 5f605f55b413..d53d4ebcd28e 100644 --- a/usr.bin/rup/rup.c +++ b/usr.bin/rup/rup.c @@ -206,7 +206,7 @@ allhosts(void) clnt_stat = clnt_broadcast(RSTATPROG, RSTATVERS_TIME, RSTATPROC_STATS, (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_statstime, &host_stat, - (resultproc_t)rstat_reply); + (clnt_broadcast_resultproc_t)rstat_reply); if (clnt_stat != RPC_SUCCESS && clnt_stat != RPC_TIMEDOUT) errx(1, "%s", clnt_sperrno(clnt_stat)); } diff --git a/usr.bin/rusers/rusers.c b/usr.bin/rusers/rusers.c index 413de53c304b..c23b79240fad 100644 --- a/usr.bin/rusers/rusers.c +++ b/usr.bin/rusers/rusers.c @@ -208,7 +208,7 @@ allhosts(void) clnt_stat = clnt_broadcast(RUSERSPROG, RUSERSVERS_IDLE, RUSERSPROC_NAMES, (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_utmpidlearr, (char *)&up, - (resultproc_t)rusers_reply); + (clnt_broadcast_resultproc_t)rusers_reply); if (clnt_stat != RPC_SUCCESS && clnt_stat != RPC_TIMEDOUT) errx(1, "%s", clnt_sperrno(clnt_stat)); } diff --git a/usr.sbin/bootparamd/callbootd/callbootd.c b/usr.sbin/bootparamd/callbootd/callbootd.c index f9939d83cab9..69d62f0c4bee 100644 --- a/usr.sbin/bootparamd/callbootd/callbootd.c +++ b/usr.sbin/bootparamd/callbootd/callbootd.c @@ -111,7 +111,7 @@ main(int argc, char **argv) (char *)&whoami_arg, (xdrproc_t)xdr_bp_whoami_res, (char *)&stat_whoami_res, - (resultproc_t)eachres_whoami); + (clnt_broadcast_resultproc_t)eachres_whoami); exit(0); } @@ -134,7 +134,7 @@ main(int argc, char **argv) (char *)&getfile_arg, (xdrproc_t)xdr_bp_getfile_res, (char *)&stat_getfile_res, - (resultproc_t)eachres_getfile); + (clnt_broadcast_resultproc_t)eachres_getfile); exit(0); } diff --git a/usr.sbin/ypbind/ypbind.c b/usr.sbin/ypbind/ypbind.c index 2aacfa5c87d6..6ed45eeb8dc6 100644 --- a/usr.sbin/ypbind/ypbind.c +++ b/usr.sbin/ypbind/ypbind.c @@ -748,7 +748,7 @@ broadcast(struct _dom_binding *ypdb) stat = clnt_broadcast(YPPROG, YPVERS, YPPROC_DOMAIN_NONACK, (xdrproc_t)xdr_domainname, &ptr, (xdrproc_t)xdr_bool, &out, - (resultproc_t)broadcast_result); + (clnt_broadcast_resultproc_t)broadcast_result); } if (stat != RPC_SUCCESS) {