From nobody Tue Sep 29 12:13:31 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 4hvHBz2Jp1z6tVH8 for ; Tue, 29 Sep 2026 12:13:31 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hvHBz1lsRz3GtK for ; Tue, 29 Sep 2026 12:13:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790684011; 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=H/y6LZEfAeNmqr90p+52SWlan9vnulHtHx9aO4QkXz8=; b=xRLyGq5709H0RUh0oPy1sex9PBt3WDecTAODKODjUVwq9mVCfOr04oGj3XjcxNAOtJlhRc m9DXX5yo2M7BPLeLlMwgj00MCZr5cFN+vHhClb7fINDSBsD0gkJvhXmqzbGQZwBe90VelS 45tlFWngScZSdzW13gb2UOgEzkm1GeKDKrb4L/cTws+U+FI6whPFD7TTrFbQ971jci7wTf DSZMjzcL0tNw8ItgDmaspRTIFbIPr8igAGJXdFZgyTGyXlCG5KQwa58sY/WoDSmw96rvTx xRltTjsxR+qbzPkWsWNIG4W/8v018eX3OT/E16wg+42Vw/dhxoWNwmdFFoIVSw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1790684011; b=JSo/KNGLt7h3eD0I+5WGDQ6Fk1LgL6DARk/FtwyI5g62qKk4dRXmxM9bMEQMcUJRub/YAw ZCNqrsWMjUKVzwd8pW8G1EnludSQkBS5Ra5mUTKyk1ppSLbZU0Z2LeXBg51efCPQFnnG+Y SL+nC4pS6QVKteiT/9FpsF2OmLZe+eaVmCBhHlHBJ5AaCypUQDAL1XKdmYqPLwP5enxPSJ PaDOwJNCLbzlbPij8/2x/ykCmywEroKwVjHMJdqy8xGLBhbtQrINLXbst8M7ext/yQGIiF y48xelGRvb/dOjxezCJGH/TQLDK8+lxrh2MKR10Oa/SpEqlJTyM2J2gKEEgdLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790684011; 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=H/y6LZEfAeNmqr90p+52SWlan9vnulHtHx9aO4QkXz8=; b=X9PbFGrpFaqBr40Q2WAeObluWt+1lz5O7KO0XyTBbzfI4Ie0PF45enOG72oGq3NncyVgAC aJ0ACvD+MV7f171mdY6aSI240lAXtNcr35Z/VdOL7yoleQgex4glSSh5RHcMXoRdFlE6t3 h76TsSmySMYVBwog33/vGrVR748MjRqwTHkPnYUiP3G84HWlOh3tCaJfPijip9NyMmWOXZ T4WVZzNhbsfQifmsU/kCj8Jw2QFFTQ1KTbmtJP9CZ+XJ2D2mnsZZ9tPthXRv/7wO/fmrG+ Yv4+we/n6uLMHM4FIe3KrQLNc2NSuaFy27rWlndRhanatDa6UJPLhDDhdzhPaw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hvHBz0X9Dz1Cf0 for ; Tue, 29 Sep 2026 12:13:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40089 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 29 Sep 2026 12:13:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: d2018cedb414 - main - xdr: Fix xdr_string 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d2018cedb414ef17e77b7fc2fa19fd81328da46b Auto-Submitted: auto-generated Date: Tue, 29 Sep 2026 12:13:31 +0000 Message-Id: <6abbab6b.40089.6c0f01d3@gitrepo.freebsd.org> The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d2018cedb414ef17e77b7fc2fa19fd81328da46b commit d2018cedb414ef17e77b7fc2fa19fd81328da46b Author: Dag-Erling Smørgrav AuthorDate: 2026-09-29 12:12:59 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-09-29 12:12:59 +0000 xdr: Fix xdr_string Forcing maxsize to RPC_MAXDATASIZE breaks code that deliberately uses XDR with longer strings than permitted by SunRPC. MFC after: 1 week Fixes: 6448ec89e739 (" * limit size of buffers to RPC_MAXDATASIZE") Fixes: e17d7ab869bb ("xdr_string: don't leak strings with xdr_free") Sponsored by: Klara, Inc. Sponsored by: NetApp, Inc. Reviewed by: kevans, brooks Differential Revision: https://reviews.freebsd.org/D59994 --- lib/libc/xdr/xdr.c | 6 ++---- sys/xdr/xdr.c | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/libc/xdr/xdr.c b/lib/libc/xdr/xdr.c index 47aafea4bc30..f8cc5267d350 100644 --- a/lib/libc/xdr/xdr.c +++ b/lib/libc/xdr/xdr.c @@ -47,8 +47,6 @@ #include #include -#include -#include #include #include #include "un-namespace.h" @@ -702,7 +700,7 @@ xdr_string(XDR *xdrs, char **cpp, u_int maxsize) * be invalid. Otherwise, if it's very small, we might * fail to free the string. */ - maxsize = RPC_MAXDATASIZE; + maxsize = ~0U; /* FALLTHROUGH */ case XDR_ENCODE: size = strlen(sp); @@ -764,7 +762,7 @@ xdr_string(XDR *xdrs, char **cpp, u_int maxsize) bool_t xdr_wrapstring(XDR *xdrs, char **cpp) { - return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); + return (xdr_string(xdrs, cpp, ~0U)); } /* diff --git a/sys/xdr/xdr.c b/sys/xdr/xdr.c index f983a474abdd..e012c83104d4 100644 --- a/sys/xdr/xdr.c +++ b/sys/xdr/xdr.c @@ -46,8 +46,6 @@ #include #include -#include -#include #include #include @@ -626,7 +624,7 @@ xdr_string(XDR *xdrs, char **cpp, u_int maxsize) * be invalid. Otherwise, if it's very small, we might * fail to free the string. */ - maxsize = RPC_MAXDATASIZE; + maxsize = ~0U; /* FALLTHROUGH */ case XDR_ENCODE: size = strlen(sp); @@ -687,7 +685,7 @@ xdr_string(XDR *xdrs, char **cpp, u_int maxsize) bool_t xdr_wrapstring(XDR *xdrs, char **cpp) { - return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); + return (xdr_string(xdrs, cpp, ~0U)); } /*