summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/nfs/nfs_common.h21
-rw-r--r--sys/nfs/nfsm_subs.h21
-rw-r--r--sys/nfsclient/nfsm_subs.h21
-rw-r--r--sys/nfsserver/nfsm_subs.h21
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) { \
OpenPOWER on IntegriCloud