git: 082e48e81bd1 - releng/15.0 - sys/rpc: UNIX auth: Support XDR_FREE

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Thu, 16 Oct 2025 18:50:25 UTC
The branch releng/15.0 has been updated by cperciva:

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

commit 082e48e81bd10237e534c9ba88d270abb9351a36
Author:     Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2025-10-13 15:13:09 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-10-16 18:48:17 +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().
    
    Approved by:    re (cperciva)
    Suggested by:   rmacklem
    MFC after:      2 days
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit 4ae70c3ea498e06676040ee99254d261e29ae82e)
    (cherry picked from commit b27688a8b5dc92c87e74c40f3702484f5e2e329c)
---
 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);