freebsd-src/sys/nfsclient
Kirk McKusick 96438eb911 The code checks each fragment mark to see if it's valid; if the fragment
is less than NFS_MINPACKET or greater than NFS_MAXPACKET in size, it
barfs and, I think, drops the connection.

However, there's no guarantee that in a multi-fragment RPC, all the
fragments will be at least as large as NFS_MINPACKET.

In fact, with the version of "tclnfs" we have here, which supports NFS
over TCP, at least when built under SunOS 4.1.3 (i.e., with 4.1.3's
user-mode ONC RPC library), I can *repeatably* cause "tclnfs" to send a
request with more than one fragment, one of which is only 8 bytes long.
I just do a 3877-byte write to a file, at an offset of 0.

The check that "slp->ns_reclen" is greater than or equal to
NFS_MINPACKET serves no useful purpose - if the NFS server code can't
handle packets < NFS_MINPACKET bytes, it can't handle them over *any*
protocol, so the check has to be done above the RPC-over-TCP layer - and
should be removed.
Obtained from: Fix from Guy Harris, forwarded by Rick Macklem.
1998-09-29 22:33:05 +00:00
..
bootp_subr.c Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
krpc.h Forward declare more structs that are used in prototypes here - don't 1998-02-01 20:34:07 +00:00
krpc_subr.c Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
nfs.h Made unloading of the nfs LKM sort of work. This is mainly to test 1998-09-07 05:42:15 +00:00
nfs_bio.c Mark directory buffers that have no valid data with B_INVAL 1998-09-29 22:01:10 +00:00
nfs_nfsiod.c Check for NULL pointer before freeing a struct sockaddr. m_freem() can handle 1998-09-01 02:31:52 +00:00
nfs_node.c Convert a couple of large allocations to use zones rather than malloc 1998-05-24 14:41:56 +00:00
nfs_socket.c The code checks each fragment mark to see if it's valid; if the fragment 1998-09-29 22:33:05 +00:00
nfs_subs.c Made unloading of the nfs LKM sort of work. This is mainly to test 1998-09-07 05:42:15 +00:00
nfs_vfsops.c Removed statically configured mount type numbers (MOUNT_*) and all 1998-09-07 13:17:06 +00:00
nfs_vnops.c Protect all modifications to v_numoutput with splbio(). 1998-08-13 08:09:08 +00:00
nfsargs.h Made unloading of the nfs LKM sort of work. This is mainly to test 1998-09-07 05:42:15 +00:00
nfsdiskless.h Removed more vestiges of config-time swap configuration. 1997-09-07 12:56:46 +00:00
nfsm_subs.h For the on-the-wire protocol, u_long -> u_int32_t; long -> int32_t; 1998-05-31 20:09:01 +00:00
nfsmount.h When using NFSv3, use the remote server's idea of the maximum file size 1998-05-30 16:33:58 +00:00
nfsnode.h NFS_SMALLFH is defined in nfsproto.h, not sys/mount.h 1998-05-31 18:32:23 +00:00
nfsstats.h Made unloading of the nfs LKM sort of work. This is mainly to test 1998-09-07 05:42:15 +00:00