From nobody Sun Nov 23 13:26:07 2025 X-Original-To: dev-commits-src-branches@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 4dDqTr1kCHz6GyJG for ; Sun, 23 Nov 2025 13:26:08 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dDqTr0y2sz3gy0 for ; Sun, 23 Nov 2025 13:26:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763904368; 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=iS2Qhrytg4OrZNz4NUBvrav+LlxTtTpfekDHOt14EY0=; b=VdlHIEEIJ/MH4PMgHA2L41W5ew5uH+v3q1Wo2b4sReduUhZvlVjIOl58Cfdkt6Roxaschj v11z8jP4W4qbmy2nm4DEI/K/sMfolcM8+dx/aJRIIOpvkNa0IUv7XO/UtZ5Ql5f/wCzoup kEmtgMuekVFizIgMa7eGWOHCMj7yrw7RJK/9BkOjA3rwVlQ1oTzk12SEEENrb89bandrk7 kDFzEUuh2DTTwB5lsh23c8awNfAci1unRjLXDfjuNbQAVSWiW6/imugA3YQkRuCukmUwZp DbISFvQpc1hEd0IBj5l4RKS8bAjxT7YCQWfjO9J1utvvf4ljxEgNWuiF/Uplrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763904368; 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=iS2Qhrytg4OrZNz4NUBvrav+LlxTtTpfekDHOt14EY0=; b=fqx60wYK7In1DbFOVIINKWvQf3o2Atf8C+fuP2JGp6lAH/PVYqCuROnJ08h+pVC48/QL4+ CH0RUNzwN2QWyOMGEmsOozWeh51v8mqKDnA1i/BBGbklvWa34IdL2+0yMhWwjIQ8lXSV47 gp8TR/K8vTDyd9Ng6cEBc1TdPtSTv1q/W+q4PMAszZciEw7qeBdZWj61Wmry1tLC5QVxEn vKpqhJ2R2ST4G0+kh5cnLTu1P4rSjV4YccCXf7/QoB4txZ0lDfCmyeuEQ56GMogYxAxctD MFp0NPRQjY+2af25NSNuWsQWfCSnlWwOR9W40C3GlwBTG30wiOvzXgkUBjcZiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763904368; a=rsa-sha256; cv=none; b=wjKChCPKF7LwudAhVGr5I4IujLQN7ni5TGS0zkhMlV3EfYe/IFe7E8ANH+vtvHUSpwPr6t U+63hKlO77MFWcsHxbzK01P0SGo4IMzlId4xAyI1/yWDBKtweFuJc0axpc567TUNm3iCah /fm4lSMLrHl55tx2k++QCjfJ1iLZTomK8ft5+AUzqpZI9hMKG+J+9jc4GbS+4q1KYP1rvr JjFWcDCMdEkYchZFDV70aP4649XAMBCl0fQCUccEA74F/pBBsPP8pj7FmO0SN526A0fss/ M2ha9HoNCFyrdopEdpki0dyLQsy3DYZDIHyr/PTW04p69Lo4zTJm7TVnqZcJAg== 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 4dDqTr08HJzVWx for ; Sun, 23 Nov 2025 13:26:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24c46 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 23 Nov 2025 13:26:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: d5335bdee715 - stable/15 - nfs_clvfsops.c: Allow long directory mount paths List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d5335bdee7157af3897d0a49834c3493e0d03681 Auto-Submitted: auto-generated Date: Sun, 23 Nov 2025 13:26:07 +0000 Message-Id: <69230b6f.24c46.3f158e2c@gitrepo.freebsd.org> The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=d5335bdee7157af3897d0a49834c3493e0d03681 commit d5335bdee7157af3897d0a49834c3493e0d03681 Author: Rick Macklem AuthorDate: 2025-10-29 21:41:12 +0000 Commit: Rick Macklem CommitDate: 2025-11-23 13:24:13 +0000 nfs_clvfsops.c: Allow long directory mount paths Without this patch, the NFS client code for mounts has an arbitrary 100 character limit for the directory path being mounted on the server. Someone reported this quite a while ago, but I cannot find the email or bugzilla PR. This patch fixes the problem by increasing the directory path length limit to MNAMELEN, allocated via malloc() to avoid using too much stack. (cherry picked from commit 8d5a88ac95b23b0a8c4943be0aef1f93e3902bfb) --- sys/fs/nfsclient/nfs_clvfsops.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clvfsops.c b/sys/fs/nfsclient/nfs_clvfsops.c index 5ea7eab07632..212c88f28930 100644 --- a/sys/fs/nfsclient/nfs_clvfsops.c +++ b/sys/fs/nfsclient/nfs_clvfsops.c @@ -927,7 +927,7 @@ nfs_mount(struct mount *mp) struct vnode *vp; struct thread *td; char *hst; - u_char nfh[NFSX_FHMAX], krbname[100], dirpath[100], srvkrbname[100]; + u_char nfh[NFSX_FHMAX], krbname[100], *dirpath, srvkrbname[100]; char *cp, *opt, *name, *secname, *tlscertname; int nametimeo = NFS_DEFAULT_NAMETIMEO; int negnametimeo = NFS_DEFAULT_NEGNAMETIMEO; @@ -943,6 +943,7 @@ nfs_mount(struct mount *mp) newflag = 0; tlscertname = NULL; hst = malloc(MNAMELEN, M_TEMP, M_WAITOK); + dirpath = malloc(MNAMELEN, M_TEMP, M_WAITOK); if (vfs_filteropt(mp->mnt_optnew, nfs_opts)) { error = EINVAL; goto out; @@ -1329,7 +1330,7 @@ nfs_mount(struct mount *mp) goto out; } else if (nfs_mount_parse_from(mp->mnt_optnew, &args.hostname, (struct sockaddr_in **)&nam, dirpath, - sizeof(dirpath), &dirlen) == 0) { + MNAMELEN, &dirlen) == 0) { has_nfs_from_opt = 1; bcopy(args.hostname, hst, MNAMELEN); hst[MNAMELEN - 1] = '\0'; @@ -1387,7 +1388,7 @@ nfs_mount(struct mount *mp) if (has_nfs_from_opt == 0) { if (vfs_getopt(mp->mnt_optnew, "dirpath", (void **)&name, NULL) == 0) - strlcpy(dirpath, name, sizeof (dirpath)); + strlcpy(dirpath, name, MNAMELEN); else dirpath[0] = '\0'; dirlen = strlen(dirpath); @@ -1472,6 +1473,7 @@ out: MNT_IUNLOCK(mp); } free(hst, M_TEMP); + free(dirpath, M_TEMP); return (error); }