diff options
author | Peter Wemm <peter@FreeBSD.org> | 2001-09-27 22:40:38 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2001-09-27 22:40:38 +0000 |
commit | 1290984b33d076a7094cde3f4ff1d016880eea42 (patch) | |
tree | 0787f81479ebda92d49c697add33a3151d9b4813 /sys/nfsserver | |
parent | 373791582dc430e020ab69c794e6e209979420fd (diff) | |
download | src-1290984b33d076a7094cde3f4ff1d016880eea42.tar.gz src-1290984b33d076a7094cde3f4ff1d016880eea42.zip |
Make nfsm_dissect() have an obvious return value.
Notes
Notes:
svn path=/head/; revision=84057
Diffstat (limited to 'sys/nfsserver')
-rw-r--r-- | sys/nfsserver/nfs_serv.c | 42 | ||||
-rw-r--r-- | sys/nfsserver/nfs_srvsock.c | 8 | ||||
-rw-r--r-- | sys/nfsserver/nfs_srvsubs.c | 106 |
3 files changed, 73 insertions, 83 deletions
diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c index 9e6a44557f94..f28d6385925d 100644 --- a/sys/nfsserver/nfs_serv.c +++ b/sys/nfsserver/nfs_serv.c @@ -187,7 +187,7 @@ nfsrv3_access(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, panic("nfsrv3_access: v3 proc called on a v2 connection"); fhp = &nfh.fh_generic; nfsm_srvmtofh(fhp); - nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); error = nfsrv_fhtovp(fhp, 1, &vp, cred, slp, nam, &rdonly, TRUE); if (error) { nfsm_reply(NFSX_UNSIGNED); @@ -320,14 +320,14 @@ nfsrv_setattr(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, VATTR_NULL(vap); if (v3) { nfsm_srvsattr(vap); - nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); gcheck = fxdr_unsigned(int, *tl); if (gcheck) { - nfsm_dissect(tl, u_int32_t *, 2 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 2 * NFSX_UNSIGNED); fxdr_nfsv3time(tl, &guard); } } else { - nfsm_dissect(sp, struct nfsv2_sattr *, NFSX_V2SATTR); + sp = nfsm_dissect(struct nfsv2_sattr *, NFSX_V2SATTR); /* * Nah nah nah nah na nah * There is a bug in the Sun client that puts 0xffff in the mode @@ -764,10 +764,10 @@ nfsrv_read(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, fhp = &nfh.fh_generic; nfsm_srvmtofh(fhp); if (v3) { - nfsm_dissect(tl, u_int32_t *, 2 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 2 * NFSX_UNSIGNED); off = fxdr_hyper(tl); } else { - nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); off = (off_t)fxdr_unsigned(u_int32_t, *tl); } nfsm_srvstrsiz(reqlen, NFS_SRVMAXDATA(nfsd)); @@ -1027,12 +1027,12 @@ nfsrv_write(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, vput(vp); vp = NULL; if (v3) { - nfsm_dissect(tl, u_int32_t *, 5 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 5 * NFSX_UNSIGNED); off = fxdr_hyper(tl); tl += 3; stable = fxdr_unsigned(int, *tl++); } else { - nfsm_dissect(tl, u_int32_t *, 4 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 4 * NFSX_UNSIGNED); off = (off_t)fxdr_unsigned(u_int32_t, *++tl); tl += 2; if (nfs_async) @@ -1245,12 +1245,12 @@ nfsrv_writegather(struct nfsrv_descript **ndp, struct nfssvc_sock *slp, */ nfsm_srvmtofh(&nfsd->nd_fh); if (v3) { - nfsm_dissect(tl, u_int32_t *, 5 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 5 * NFSX_UNSIGNED); nfsd->nd_off = fxdr_hyper(tl); tl += 3; nfsd->nd_stable = fxdr_unsigned(int, *tl++); } else { - nfsm_dissect(tl, u_int32_t *, 4 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 4 * NFSX_UNSIGNED); nfsd->nd_off = (off_t)fxdr_unsigned(u_int32_t, *++tl); tl += 2; if (nfs_async) @@ -1665,7 +1665,7 @@ nfsrv_create(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, VATTR_NULL(vap); if (v3) { - nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); how = fxdr_unsigned(int, *tl); switch (how) { case NFSV3CREATE_GUARDED: @@ -1678,7 +1678,7 @@ nfsrv_create(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, nfsm_srvsattr(vap); break; case NFSV3CREATE_EXCLUSIVE: - nfsm_dissect(cp, caddr_t, NFSX_V3CREATEVERF); + cp = nfsm_dissect(caddr_t, NFSX_V3CREATEVERF); bcopy(cp, cverf, NFSX_V3CREATEVERF); exclusive_flag = 1; if (nd.ni_vp == NULL) @@ -1687,7 +1687,7 @@ nfsrv_create(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, }; vap->va_type = VREG; } else { - nfsm_dissect(sp, struct nfsv2_sattr *, NFSX_V2SATTR); + sp = nfsm_dissect(struct nfsv2_sattr *, NFSX_V2SATTR); vap->va_type = IFTOVT(fxdr_unsigned(u_int32_t, sp->sa_mode)); if (vap->va_type == VNON) vap->va_type = VREG; @@ -1922,7 +1922,7 @@ nfsrv_mknod(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, error = 0; goto nfsmout; } - nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); vtyp = nfsv3tov_type(*tl); if (vtyp != VCHR && vtyp != VBLK && vtyp != VSOCK && vtyp != VFIFO) { error = NFSERR_BADTYPE; @@ -1931,7 +1931,7 @@ nfsrv_mknod(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, VATTR_NULL(vap); nfsm_srvsattr(vap); if (vtyp == VCHR || vtyp == VBLK) { - nfsm_dissect(tl, u_int32_t *, 2 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 2 * NFSX_UNSIGNED); major = fxdr_unsigned(u_int32_t, *tl++); minor = fxdr_unsigned(u_int32_t, *tl); vap->va_rdev = makeudev(major, minor); @@ -2570,7 +2570,7 @@ nfsrv_symlink(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, io.uio_td = (struct thread *)0; nfsm_mtouio(&io, len2); if (!v3) { - nfsm_dissect(sp, struct nfsv2_sattr *, NFSX_V2SATTR); + sp = nfsm_dissect(struct nfsv2_sattr *, NFSX_V2SATTR); vap->va_mode = fxdr_unsigned(u_int16_t, sp->sa_mode); } *(pathcp + len2) = '\0'; @@ -2746,7 +2746,7 @@ nfsrv_mkdir(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, if (v3) { nfsm_srvsattr(vap); } else { - nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, NFSX_UNSIGNED); vap->va_mode = nfstov_mode(*tl++); } @@ -3003,13 +3003,13 @@ nfsrv_readdir(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, fhp = &nfh.fh_generic; nfsm_srvmtofh(fhp); if (v3) { - nfsm_dissect(tl, u_int32_t *, 5 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 5 * NFSX_UNSIGNED); toff = fxdr_hyper(tl); tl += 2; verf = fxdr_hyper(tl); tl += 2; } else { - nfsm_dissect(tl, u_int32_t *, 2 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 2 * NFSX_UNSIGNED); toff = fxdr_unsigned(u_quad_t, *tl++); verf = 0; /* shut up gcc */ } @@ -3295,7 +3295,7 @@ nfsrv_readdirplus(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, panic("nfsrv_readdirplus: v3 proc called on a v2 connection"); fhp = &nfh.fh_generic; nfsm_srvmtofh(fhp); - nfsm_dissect(tl, u_int32_t *, 6 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 6 * NFSX_UNSIGNED); toff = fxdr_hyper(tl); tl += 2; verf = fxdr_hyper(tl); @@ -3630,7 +3630,7 @@ nfsrv_commit(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, (void) vn_start_write(vp, &mp, V_WAIT); vput(vp); vp = NULL; - nfsm_dissect(tl, u_int32_t *, 3 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 3 * NFSX_UNSIGNED); /* * XXX At this time VOP_FSYNC() does not accept offset and byte diff --git a/sys/nfsserver/nfs_srvsock.c b/sys/nfsserver/nfs_srvsock.c index c93d4312d323..cb2276d36785 100644 --- a/sys/nfsserver/nfs_srvsock.c +++ b/sys/nfsserver/nfs_srvsock.c @@ -294,14 +294,14 @@ nfs_getreq(struct nfsrv_descript *nd, struct nfsd *nfsd, int has_header) md = nd->nd_md; dpos = nd->nd_dpos; if (has_header) { - nfsm_dissect(tl, u_int32_t *, 10 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 10 * NFSX_UNSIGNED); nd->nd_retxid = fxdr_unsigned(u_int32_t, *tl++); if (*tl++ != rpc_call) { m_freem(mrep); return (EBADRPC); } } else - nfsm_dissect(tl, u_int32_t *, 8 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 8 * NFSX_UNSIGNED); nd->nd_repstat = 0; nd->nd_flag = 0; if (*tl++ != rpc_vers) { @@ -357,7 +357,7 @@ nfs_getreq(struct nfsrv_descript *nd, struct nfsd *nfsd, int has_header) return (EBADRPC); } nfsm_adv(nfsm_rndup(len)); - nfsm_dissect(tl, u_int32_t *, 3 * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, 3 * NFSX_UNSIGNED); bzero((caddr_t)&nd->nd_cr, sizeof (struct ucred)); nd->nd_cr.cr_ref = 1; nd->nd_cr.cr_uid = fxdr_unsigned(uid_t, *tl++); @@ -367,7 +367,7 @@ nfs_getreq(struct nfsrv_descript *nd, struct nfsd *nfsd, int has_header) m_freem(mrep); return (EBADRPC); } - nfsm_dissect(tl, u_int32_t *, (len + 2) * NFSX_UNSIGNED); + tl = nfsm_dissect(u_int32_t *, (len + 2) * NFSX_UNSIGNED); for (i = 1; i <= len; i++) if (i < NGROUPS) nd->nd_cr.cr_groups[i] = fxdr_unsigned(gid_t, *tl++); diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c index 672ec12badb1..c47de7deca12 100644 --- a/sys/nfsserver/nfs_srvsubs.c +++ b/sys/nfsserver/nfs_srvsubs.c @@ -1232,11 +1232,10 @@ int nfsm_srvstrsiz_xx(int *s, int m, u_int32_t **tl, struct mbuf **md, caddr_t *dpos) { - int ret; - ret = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (ret) - return ret; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; *s = fxdr_unsigned(int32_t, **tl); if (*s > m || *s <= 0) return EBADRPC; @@ -1247,11 +1246,10 @@ int nfsm_srvnamesiz_xx(int *s, u_int32_t **tl, struct mbuf **md, caddr_t *dpos) { - int ret; - ret = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (ret) - return ret; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; *s = fxdr_unsigned(int32_t, **tl); if (*s > NFS_MAXNAMLEN) return NFSERR_NAMETOL; @@ -1284,13 +1282,12 @@ int nfsm_srvmtofh_xx(fhandle_t *f, struct nfsrv_descript *nfsd, u_int32_t **tl, struct mbuf **md, caddr_t *dpos) { - int error; int fhlen; if (nfsd->nd_flag & ND_NFSV3) { - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - return error; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; fhlen = fxdr_unsigned(int, **tl); if (fhlen != 0 && fhlen != NFSX_V3FH) return EBADRPC; @@ -1298,9 +1295,9 @@ nfsm_srvmtofh_xx(fhandle_t *f, struct nfsrv_descript *nfsd, fhlen = NFSX_V2FH; } if (fhlen != 0) { - error = nfsm_dissect_xx((void **)tl, fhlen, md, dpos); - if (error) - return error; + *tl = nfsm_dissect_xx(fhlen, md, dpos); + if (*tl == NULL) + return EBADRPC; bcopy((caddr_t)*tl, (caddr_t)(f), fhlen); } else { bzero((caddr_t)(f), NFSX_V3FH); @@ -1312,69 +1309,65 @@ int nfsm_srvsattr_xx(struct vattr *a, u_int32_t **tl, struct mbuf **md, caddr_t *dpos) { - int error = 0; - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; if (**tl == nfs_true) { - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; (a)->va_mode = nfstov_mode(**tl); } - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; if (**tl == nfs_true) { - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; (a)->va_uid = fxdr_unsigned(uid_t, **tl); } - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; if (**tl == nfs_true) { - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; (a)->va_gid = fxdr_unsigned(gid_t, **tl); } - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; if (**tl == nfs_true) { - error = nfsm_dissect_xx((void **)tl, 2 * NFSX_UNSIGNED, - md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(2 * NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; (a)->va_size = fxdr_hyper(*tl); } - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; switch (fxdr_unsigned(int, **tl)) { case NFSV3SATTRTIME_TOCLIENT: - error = nfsm_dissect_xx((void **)tl, 2 * NFSX_UNSIGNED, - md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(2 * NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; fxdr_nfsv3time(*tl, &(a)->va_atime); break; case NFSV3SATTRTIME_TOSERVER: getnanotime(&(a)->va_atime); break; } - error = nfsm_dissect_xx((void **)tl, NFSX_UNSIGNED, md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; switch (fxdr_unsigned(int, **tl)) { case NFSV3SATTRTIME_TOCLIENT: - error = nfsm_dissect_xx((void **)tl, 2 * NFSX_UNSIGNED, - md, dpos); - if (error) - goto bugout; + *tl = nfsm_dissect_xx(2 * NFSX_UNSIGNED, md, dpos); + if (*tl == NULL) + return EBADRPC; fxdr_nfsv3time(*tl, &(a)->va_mtime); break; case NFSV3SATTRTIME_TOSERVER: @@ -1382,9 +1375,6 @@ nfsm_srvsattr_xx(struct vattr *a, break; } return 0; - -bugout: - return error; } void |