diff options
-rw-r--r-- | sys/nfs/nfs_common.h | 21 | ||||
-rw-r--r-- | sys/nfs/nfsm_subs.h | 21 | ||||
-rw-r--r-- | sys/nfsclient/nfsm_subs.h | 21 | ||||
-rw-r--r-- | sys/nfsserver/nfsm_subs.h | 21 |
4 files changed, 44 insertions, 40 deletions
diff --git a/sys/nfs/nfs_common.h b/sys/nfs/nfs_common.h index 5efe149..f70645f 100644 --- a/sys/nfs/nfs_common.h +++ b/sys/nfs/nfs_common.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfsm_subs.h 8.2 (Berkeley) 3/30/95 - * $Id: nfsm_subs.h,v 1.23 1999/06/05 05:35:03 peter Exp $ + * $Id: nfsm_subs.h,v 1.24 1999/06/23 04:44:14 julian Exp $ */ @@ -419,24 +419,25 @@ struct mbuf *nfsm_rpchead __P((struct ucred *cr, int nmflag, int procid, } } #define nfsm_srvmtofh(f) \ - { int fhlen = NFSX_V3FH; \ + do { \ + int fhlen; \ if (nfsd->nd_flag & ND_NFSV3) { \ nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); \ fhlen = fxdr_unsigned(int, *tl); \ - if (fhlen == 0) { \ - bzero((caddr_t)(f), NFSX_V3FH); \ - } else if (fhlen != NFSX_V3FH) { \ + if (fhlen != 0 && fhlen != NFSX_V3FH) { \ error = EBADRPC; \ nfsm_reply(0); \ } \ + } else { \ + fhlen = NFSX_V2FH; \ } \ if (fhlen != 0) { \ - nfsm_dissect(tl, u_int32_t *, NFSX_V3FH); \ - bcopy((caddr_t)tl, (caddr_t)(f), NFSX_V3FH); \ - if ((nfsd->nd_flag & ND_NFSV3) == 0) \ - nfsm_adv(NFSX_V2FH - NFSX_V3FH); \ + nfsm_dissect(tl, u_int32_t *, fhlen); \ + bcopy((caddr_t)tl, (caddr_t)(f), fhlen); \ + } else {\ + bzero((caddr_t)(f), NFSX_V3FH); \ } \ - } + } while (0) #define nfsm_clget \ if (bp >= be) { \ diff --git a/sys/nfs/nfsm_subs.h b/sys/nfs/nfsm_subs.h index 5efe149..f70645f 100644 --- a/sys/nfs/nfsm_subs.h +++ b/sys/nfs/nfsm_subs.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfsm_subs.h 8.2 (Berkeley) 3/30/95 - * $Id: nfsm_subs.h,v 1.23 1999/06/05 05:35:03 peter Exp $ + * $Id: nfsm_subs.h,v 1.24 1999/06/23 04:44:14 julian Exp $ */ @@ -419,24 +419,25 @@ struct mbuf *nfsm_rpchead __P((struct ucred *cr, int nmflag, int procid, } } #define nfsm_srvmtofh(f) \ - { int fhlen = NFSX_V3FH; \ + do { \ + int fhlen; \ if (nfsd->nd_flag & ND_NFSV3) { \ nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); \ fhlen = fxdr_unsigned(int, *tl); \ - if (fhlen == 0) { \ - bzero((caddr_t)(f), NFSX_V3FH); \ - } else if (fhlen != NFSX_V3FH) { \ + if (fhlen != 0 && fhlen != NFSX_V3FH) { \ error = EBADRPC; \ nfsm_reply(0); \ } \ + } else { \ + fhlen = NFSX_V2FH; \ } \ if (fhlen != 0) { \ - nfsm_dissect(tl, u_int32_t *, NFSX_V3FH); \ - bcopy((caddr_t)tl, (caddr_t)(f), NFSX_V3FH); \ - if ((nfsd->nd_flag & ND_NFSV3) == 0) \ - nfsm_adv(NFSX_V2FH - NFSX_V3FH); \ + nfsm_dissect(tl, u_int32_t *, fhlen); \ + bcopy((caddr_t)tl, (caddr_t)(f), fhlen); \ + } else {\ + bzero((caddr_t)(f), NFSX_V3FH); \ } \ - } + } while (0) #define nfsm_clget \ if (bp >= be) { \ diff --git a/sys/nfsclient/nfsm_subs.h b/sys/nfsclient/nfsm_subs.h index 5efe149..f70645f 100644 --- a/sys/nfsclient/nfsm_subs.h +++ b/sys/nfsclient/nfsm_subs.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfsm_subs.h 8.2 (Berkeley) 3/30/95 - * $Id: nfsm_subs.h,v 1.23 1999/06/05 05:35:03 peter Exp $ + * $Id: nfsm_subs.h,v 1.24 1999/06/23 04:44:14 julian Exp $ */ @@ -419,24 +419,25 @@ struct mbuf *nfsm_rpchead __P((struct ucred *cr, int nmflag, int procid, } } #define nfsm_srvmtofh(f) \ - { int fhlen = NFSX_V3FH; \ + do { \ + int fhlen; \ if (nfsd->nd_flag & ND_NFSV3) { \ nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); \ fhlen = fxdr_unsigned(int, *tl); \ - if (fhlen == 0) { \ - bzero((caddr_t)(f), NFSX_V3FH); \ - } else if (fhlen != NFSX_V3FH) { \ + if (fhlen != 0 && fhlen != NFSX_V3FH) { \ error = EBADRPC; \ nfsm_reply(0); \ } \ + } else { \ + fhlen = NFSX_V2FH; \ } \ if (fhlen != 0) { \ - nfsm_dissect(tl, u_int32_t *, NFSX_V3FH); \ - bcopy((caddr_t)tl, (caddr_t)(f), NFSX_V3FH); \ - if ((nfsd->nd_flag & ND_NFSV3) == 0) \ - nfsm_adv(NFSX_V2FH - NFSX_V3FH); \ + nfsm_dissect(tl, u_int32_t *, fhlen); \ + bcopy((caddr_t)tl, (caddr_t)(f), fhlen); \ + } else {\ + bzero((caddr_t)(f), NFSX_V3FH); \ } \ - } + } while (0) #define nfsm_clget \ if (bp >= be) { \ diff --git a/sys/nfsserver/nfsm_subs.h b/sys/nfsserver/nfsm_subs.h index 5efe149..f70645f 100644 --- a/sys/nfsserver/nfsm_subs.h +++ b/sys/nfsserver/nfsm_subs.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfsm_subs.h 8.2 (Berkeley) 3/30/95 - * $Id: nfsm_subs.h,v 1.23 1999/06/05 05:35:03 peter Exp $ + * $Id: nfsm_subs.h,v 1.24 1999/06/23 04:44:14 julian Exp $ */ @@ -419,24 +419,25 @@ struct mbuf *nfsm_rpchead __P((struct ucred *cr, int nmflag, int procid, } } #define nfsm_srvmtofh(f) \ - { int fhlen = NFSX_V3FH; \ + do { \ + int fhlen; \ if (nfsd->nd_flag & ND_NFSV3) { \ nfsm_dissect(tl, u_int32_t *, NFSX_UNSIGNED); \ fhlen = fxdr_unsigned(int, *tl); \ - if (fhlen == 0) { \ - bzero((caddr_t)(f), NFSX_V3FH); \ - } else if (fhlen != NFSX_V3FH) { \ + if (fhlen != 0 && fhlen != NFSX_V3FH) { \ error = EBADRPC; \ nfsm_reply(0); \ } \ + } else { \ + fhlen = NFSX_V2FH; \ } \ if (fhlen != 0) { \ - nfsm_dissect(tl, u_int32_t *, NFSX_V3FH); \ - bcopy((caddr_t)tl, (caddr_t)(f), NFSX_V3FH); \ - if ((nfsd->nd_flag & ND_NFSV3) == 0) \ - nfsm_adv(NFSX_V2FH - NFSX_V3FH); \ + nfsm_dissect(tl, u_int32_t *, fhlen); \ + bcopy((caddr_t)tl, (caddr_t)(f), fhlen); \ + } else {\ + bzero((caddr_t)(f), NFSX_V3FH); \ } \ - } + } while (0) #define nfsm_clget \ if (bp >= be) { \ |