diff options
author | hrs <hrs@FreeBSD.org> | 2007-01-02 20:42:08 +0000 |
---|---|---|
committer | hrs <hrs@FreeBSD.org> | 2007-01-02 20:42:08 +0000 |
commit | 7c35092b088bdb23a7ea3a3f98006256c004dfc0 (patch) | |
tree | 69df2c6126a7b9aaff116a9782dbf5b36b5f9471 /sys/nfsserver/nfsm_subs.h | |
parent | fa85787a847721ae7f307f82717f81991dfed9a0 (diff) | |
download | FreeBSD-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.h | 3 |
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); \ |