freebsd-dev/sys/nfsserver
Ian Dowse 8a919282a5 It is required by VOP_CREATE, VOP_MKNOD, VOP_SYMLINK and VOP_MKDIR
that va_mode of the supplied attributes is filled in with a valid
file mode (i.e not VNOVAL, and only ALLPERM bits set). However,
some NFS server op functions didn't guarantee this for all possible
request messages:

If a V3 client chose not include to a mode specification, we could
end up creating an ffs inode with mode 0177777, requiring a manual
fsck on the next reboot. Fix this by setting va_mode to 0 before
calling the VOP if a mode hasn't been supplied by the client.

In nfsrv_symlink(), S_IFMT bits supplied by a V2 client could end
up in the va_mode passed to VOP_SYMLINK with similar effects. We
now use the macro nfstov_mode() to correctly mask the bits.
2002-01-13 05:36:05 +00:00
..
nfs_serv.c It is required by VOP_CREATE, VOP_MKNOD, VOP_SYMLINK and VOP_MKDIR 2002-01-13 05:36:05 +00:00
nfs_srvcache.c Unwind some more macros. NFSMADV() was kinda silly since it was right 2001-09-28 04:37:08 +00:00
nfs_srvsock.c Rename some variables that end up shadowing their namesakes in the NFS client 2002-01-08 19:41:06 +00:00
nfs_srvsubs.c Rename some variables that end up shadowing their namesakes in the NFS client 2002-01-08 19:41:06 +00:00
nfs_syscalls.c Rename some variables that end up shadowing their namesakes in the NFS client 2002-01-08 19:41:06 +00:00
nfs.h Rename some variables that end up shadowing their namesakes in the NFS client 2002-01-08 19:41:06 +00:00
nfsm_subs.h The macro nfsm_reply() is supposed to allocate a reply in all cases, 2002-01-11 22:22:39 +00:00
nfsrvcache.h Cleanup and split of nfs client and server code. 2001-09-18 23:32:09 +00:00
nfsrvstats.h Cleanup and split of nfs client and server code. 2001-09-18 23:32:09 +00:00