git: b27688a8b5dc - stable/15 - sys/rpc: UNIX auth: Support XDR_FREE

From: Olivier Certner <olce_at_FreeBSD.org>
Date: Thu, 16 Oct 2025 16:58:25 UTC
The branch stable/15 has been updated by olce:

URL: https://cgit.FreeBSD.org/src/commit/?id=b27688a8b5dc92c87e74c40f3702484f5e2e329c

commit b27688a8b5dc92c87e74c40f3702484f5e2e329c
Author:     Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2025-10-13 15:13:09 +0000
Commit:     Olivier Certner <olce@FreeBSD.org>
CommitDate: 2025-10-16 16:57:46 +0000

    sys/rpc: UNIX auth: Support XDR_FREE
    
    xdr_authunix_parms() does not allocate any auxiliary memory, so we can
    simply support XDR_FREE by just returning TRUE.
    
    Although there are currently no callers passing XDR_FREE, this makes us
    immune to such a change in a way that doesn't cost more but is more
    constructive than a mere KASSERT().
    
    Suggested by:   rmacklem
    MFC after:      2 days
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit 4ae70c3ea498e06676040ee99254d261e29ae82e)
---
 sys/rpc/authunix_prot.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys/rpc/authunix_prot.c b/sys/rpc/authunix_prot.c
index c1a9f90bbe28..0274a713ff2b 100644
--- a/sys/rpc/authunix_prot.c
+++ b/sys/rpc/authunix_prot.c
@@ -61,6 +61,10 @@ xdr_authunix_parms(XDR *xdrs, uint32_t *time, struct xucred *cred)
 	uint32_t junk;
 	char hostbuf[MAXHOSTNAMELEN];
 
+	if (xdrs->x_op == XDR_FREE)
+		/* This function does not allocate auxiliary memory. */
+		return (TRUE);
+
 	if (xdrs->x_op == XDR_ENCODE) {
 		getcredhostname(NULL, hostbuf, sizeof(hostbuf));
 		namelen = strlen(hostbuf);