1
0
mirror of https://github.com/openbsd/src.git synced 2026-06-18 15:23:33 +02:00

make nfsm_strtom() take an mbuf argument

ok miod@
This commit is contained in:
jsg
2026-06-09 02:36:29 +00:00
parent 1a1b1c7bb8
commit 78974ab08b
2 changed files with 17 additions and 16 deletions
+13 -13
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: nfs_vnops.c,v 1.210 2026/04/22 01:43:48 jsg Exp $ */
/* $OpenBSD: nfs_vnops.c,v 1.211 2026/06/09 02:36:29 jsg Exp $ */
/* $NetBSD: nfs_vnops.c,v 1.62.4.1 1996/07/08 20:26:52 jtc Exp $ */
/*
@@ -911,7 +911,7 @@ dorpc:
info.nmi_mb = info.nmi_mreq = nfsm_reqhead(NFSX_FH(info.nmi_v3) +
NFSX_UNSIGNED + nfsm_rndup(len));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, len, NFS_MAXNAMLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, len, NFS_MAXNAMLEN) != 0)
goto nfsmout;
info.nmi_procp = cnp->cn_proc;
@@ -1461,7 +1461,7 @@ nfs_mknodrpc(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp,
4 * NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen) +
NFSX_SATTR(info.nmi_v3));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, cnp->cn_namelen,
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, cnp->cn_namelen,
NFS_MAXNAMLEN) != 0)
goto nfsmout;
@@ -1573,7 +1573,7 @@ again:
2 * NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen) +
NFSX_SATTR(info.nmi_v3));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, cnp->cn_namelen,
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, cnp->cn_namelen,
NFS_MAXNAMLEN) != 0)
goto nfsmout;
if (info.nmi_v3) {
@@ -1751,7 +1751,7 @@ nfs_removerpc(struct vnode *dvp, char *name, int namelen, struct ucred *cred,
info.nmi_mb = info.nmi_mreq = nfsm_reqhead(NFSX_FH(info.nmi_v3) +
NFSX_UNSIGNED + nfsm_rndup(namelen));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, name, namelen, NFS_MAXNAMLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, name, namelen, NFS_MAXNAMLEN) != 0)
goto nfsmout;
info.nmi_procp = proc;
@@ -1866,10 +1866,10 @@ nfs_renamerpc(struct vnode *fdvp, char *fnameptr, int fnamelen,
info.nmi_mb = info.nmi_mreq = nfsm_reqhead((NFSX_FH(info.nmi_v3) +
NFSX_UNSIGNED) * 2 + nfsm_rndup(fnamelen) + nfsm_rndup(tnamelen));
nfsm_fhtom(&info, fdvp, info.nmi_v3);
if (nfsm_strtom(&info, fnameptr, fnamelen, NFS_MAXNAMLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, fnameptr, fnamelen, NFS_MAXNAMLEN) != 0)
goto nfsmout;
nfsm_fhtom(&info, tdvp, info.nmi_v3);
if (nfsm_strtom(&info, tnameptr, tnamelen, NFS_MAXNAMLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, tnameptr, tnamelen, NFS_MAXNAMLEN) != 0)
goto nfsmout;
info.nmi_procp = proc;
@@ -1928,7 +1928,7 @@ nfs_link(void *v)
NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen));
nfsm_fhtom(&info, vp, info.nmi_v3);
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, cnp->cn_namelen,
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, cnp->cn_namelen,
NFS_MAXNAMLEN) != 0)
goto nfsmout;
@@ -1981,12 +1981,12 @@ nfs_symlink(void *v)
2 * NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen) + nfsm_rndup(slen) +
NFSX_SATTR(info.nmi_v3));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, cnp->cn_namelen,
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, cnp->cn_namelen,
NFS_MAXNAMLEN) != 0)
goto nfsmout;
if (info.nmi_v3)
nfsm_v3attrbuild(&info.nmi_mb, vap, 0);
if (nfsm_strtom(&info, ap->a_target, slen, NFS_MAXPATHLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, ap->a_target, slen, NFS_MAXPATHLEN) != 0)
goto nfsmout;
if (!info.nmi_v3) {
sp = nfsm_build(&info.nmi_mb, NFSX_V2SATTR);
@@ -2049,7 +2049,7 @@ nfs_mkdir(void *v)
info.nmi_mb = info.nmi_mreq = nfsm_reqhead(NFSX_FH(info.nmi_v3) +
NFSX_UNSIGNED + nfsm_rndup(len) + NFSX_SATTR(info.nmi_v3));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, len, NFS_MAXNAMLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, len, NFS_MAXNAMLEN) != 0)
goto nfsmout;
if (info.nmi_v3) {
@@ -2125,7 +2125,7 @@ nfs_rmdir(void *v)
info.nmi_mb = info.nmi_mreq = nfsm_reqhead(NFSX_FH(info.nmi_v3) +
NFSX_UNSIGNED + nfsm_rndup(cnp->cn_namelen));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, cnp->cn_nameptr, cnp->cn_namelen,
if (nfsm_strtom(&info, &info.nmi_mb, cnp->cn_nameptr, cnp->cn_namelen,
NFS_MAXNAMLEN) != 0)
goto nfsmout;
@@ -2863,7 +2863,7 @@ nfs_lookitup(struct vnode *dvp, char *name, int len, struct ucred *cred,
info.nmi_mb = info.nmi_mreq = nfsm_reqhead(NFSX_FH(info.nmi_v3) + NFSX_UNSIGNED +
nfsm_rndup(len));
nfsm_fhtom(&info, dvp, info.nmi_v3);
if (nfsm_strtom(&info, name, len, NFS_MAXNAMLEN) != 0)
if (nfsm_strtom(&info, &info.nmi_mb, name, len, NFS_MAXNAMLEN) != 0)
goto nfsmout;
info.nmi_procp = procp;
+4 -3
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: nfsm_subs.h,v 1.49 2024/09/11 12:22:34 claudio Exp $ */
/* $OpenBSD: nfsm_subs.h,v 1.50 2026/06/09 02:36:29 jsg Exp $ */
/* $NetBSD: nfsm_subs.h,v 1.10 1996/03/20 21:59:56 fvdl Exp $ */
/*
@@ -170,7 +170,8 @@ nfsm_mtouio(struct nfsm_info *infop, struct uio *uiop, int len)
}
static inline int
nfsm_strtom(struct nfsm_info *infop, char *str, size_t len, size_t maxlen)
nfsm_strtom(struct nfsm_info *infop, struct mbuf **mb,
char *str, size_t len, size_t maxlen)
{
if (len > maxlen) {
m_freem(infop->nmi_mreq);
@@ -178,7 +179,7 @@ nfsm_strtom(struct nfsm_info *infop, char *str, size_t len, size_t maxlen)
*infop->nmi_errorp = ENAMETOOLONG;
return 1;
}
nfsm_strtombuf(&infop->nmi_mb, str, len);
nfsm_strtombuf(mb, str, len);
return 0;
}