summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfsm_subs.h
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2007-01-02 20:42:08 +0000
committerhrs <hrs@FreeBSD.org>2007-01-02 20:42:08 +0000
commit7c35092b088bdb23a7ea3a3f98006256c004dfc0 (patch)
tree69df2c6126a7b9aaff116a9782dbf5b36b5f9471 /sys/nfsserver/nfsm_subs.h
parentfa85787a847721ae7f307f82717f81991dfed9a0 (diff)
downloadFreeBSD-src-7c35092b088bdb23a7ea3a3f98006256c004dfc0.zip
FreeBSD-src-7c35092b088bdb23a7ea3a3f98006256c004dfc0.tar.gz
The nfsm_srvpathsiz() macro in nfsrv_symlink() in nfs_serv.c should
check length of the pathname in the range 0<=n<=NFS_MAXPATHLEN, not 0<n<=NFS_MAXPATHLEN. This fixes a minor interoperability problem that the FreeBSD NFS server did not allow a symlink pointing the empty pathname. MFC after: 1 week
Diffstat (limited to 'sys/nfsserver/nfsm_subs.h')
-rw-r--r--sys/nfsserver/nfsm_subs.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/nfsserver/nfsm_subs.h b/sys/nfsserver/nfsm_subs.h
index 82e7e25..b605c5d 100644
--- a/sys/nfsserver/nfsm_subs.h
+++ b/sys/nfsserver/nfsm_subs.h
@@ -74,6 +74,7 @@
int nfsm_srvstrsiz_xx(int *s, int m, struct mbuf **md, caddr_t *dpos);
int nfsm_srvnamesiz_xx(int *s, int m, struct mbuf **md, caddr_t *dpos);
+int nfsm_srvnamesiz0_xx(int *s, int m, struct mbuf **md, caddr_t *dpos);
int nfsm_srvmtofh_xx(fhandle_t *f, struct nfsrv_descript *nfsd,
struct mbuf **md, caddr_t *dpos);
int nfsm_srvsattr_xx(struct vattr *a, struct mbuf **md, caddr_t *dpos);
@@ -101,7 +102,7 @@ do { \
#define nfsm_srvpathsiz(s) \
do { \
int t1; \
- t1 = nfsm_srvnamesiz_xx(&(s), NFS_MAXPATHLEN, &md, &dpos); \
+ t1 = nfsm_srvnamesiz0_xx(&(s), NFS_MAXPATHLEN, &md, &dpos); \
if (t1) { \
error = t1; \
nfsm_reply(0); \
OpenPOWER on IntegriCloud