git: 4ae70c3ea498 - main - sys/rpc: UNIX auth: Support XDR_FREE

From: Olivier Certner <olce_at_FreeBSD.org>
Date: Tue, 14 Oct 2025 12:22:53 UTC
The branch main has been updated by olce:

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

commit 4ae70c3ea498e06676040ee99254d261e29ae82e
Author:     Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2025-10-13 15:13:09 +0000
Commit:     Olivier Certner <olce@FreeBSD.org>
CommitDate: 2025-10-14 12:21:49 +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
---
 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);