diff options
author | Peter Wemm <peter@FreeBSD.org> | 1998-05-31 19:16:08 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 1998-05-31 19:16:08 +0000 |
commit | 71c667c91b04cb4fc332bc68ef4d24217e337796 (patch) | |
tree | cafc47baa68efea1a8a1deda4e968ef9c85df71a /sys/nfsclient | |
parent | a422fed096387a57f191a1b52d64aaae64d0ccb5 (diff) | |
download | src-71c667c91b04cb4fc332bc68ef4d24217e337796.tar.gz src-71c667c91b04cb4fc332bc68ef4d24217e337796.zip |
Prototype support for selectively allowing non-reserved ports on a per
export basis. Needs userland support yet.
Obtained from: NetBSD
Notes
Notes:
svn path=/head/; revision=36534
Diffstat (limited to 'sys/nfsclient')
-rw-r--r-- | sys/nfsclient/nfs_subs.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c index b3aeb0a52fdf..630698eb1db5 100644 --- a/sys/nfsclient/nfs_subs.c +++ b/sys/nfsclient/nfs_subs.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95 - * $Id: nfs_subs.c,v 1.58 1998/05/31 18:09:18 peter Exp $ + * $Id: nfs_subs.c,v 1.59 1998/05/31 18:11:03 peter Exp $ */ /* @@ -1874,6 +1874,9 @@ nfsrv_fhtovp(fhp, lockflag, vpp, cred, slp, nam, rdonlyp, kerbflag, pubflag) register int i; struct ucred *credanon; int error, exflags; +#ifdef MNT_EXNORESPORT /* XXX needs mountd and /etc/exports help yet */ + struct sockaddr_int *saddr; +#endif *vpp = (struct vnode *)0; @@ -1889,6 +1892,16 @@ nfsrv_fhtovp(fhp, lockflag, vpp, cred, slp, nam, rdonlyp, kerbflag, pubflag) error = VFS_FHTOVP(mp, &fhp->fh_fid, nam, vpp, &exflags, &credanon); if (error) return (error); +#ifdef MNT_EXNORESPORT + if (!(exflags & (MNT_EXNORESPORT|MNT_EXPUBLIC))) { + saddr = (struct sockaddr_in *)nam; + if (saddr->sin_family == AF_INET && + ntohs(saddr->sin_port) >= IPPORT_RESERVED) { + vput(*vpp); + return (NFSERR_AUTHERR | AUTH_TOOWEAK); + } + } +#endif /* * Check/setup credentials. */ |