freebsd-dev/sys/nfs
Bill Paul f069164876 Fix two bugs in nfs_readdirplus(). The first is that in some cases,
vnodes are locked and never unlocked, which leads to processes starting
to wedge up after doing a mount -o nfsv3,tcp,rdirplus foo:/fs /fs; ls /fs.
The second is that sometimes cnp is accessed without having been
properly initialized: cnp->cn_nameptr points to an earlier name while
"len" contains the length of a current name of different size. This
leads to an attempt to dereference *(cn->cn_nameptr + len) which will
sometimes cause a page fault and a panic.

With these two fixes, client side readdirplus works correctly with
FreeBSD, IRIX 6.5.4 and Solaris 2.5.1 and 2.6 servers.

Submitted by: Matthew Dillon <dillon@backplane.com>
1999-07-30 04:02:04 +00:00
..
bootp_subr.c Fix warnings in preparation for adding -Wall -Wcast-qual to the 1999-01-27 23:45:44 +00:00
krpc_subr.c Fix warnings in preparation for adding -Wall -Wcast-qual to the 1999-01-27 23:45:44 +00:00
krpc.h Forward declare more structs that are used in prototypes here - don't 1998-02-01 20:34:07 +00:00
nfs_bio.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
nfs_common.c I have not one single time remembered the name of this function correctly 1999-07-17 18:43:50 +00:00
nfs_common.h Matt's NFS fixes. 1999-06-23 04:44:14 +00:00
nfs_node.c Thanks to Bruce for noticing this.... compare against the *new* nfsnode's 1999-06-19 19:33:44 +00:00
nfs_nqlease.c Use vput instead of vrele. 1999-06-16 18:35:58 +00:00
nfs_serv.c Correct the sanity test length calculation in nfsrv_readdirplus(): len is 1999-07-29 21:42:57 +00:00
nfs_socket.c Various changes lifted from the OpenBSD cvs tree: 1999-06-05 05:35:03 +00:00
nfs_srvcache.c Moved `#ifndef NFS_NOSERVER' after including nfs.h. 1998-07-02 12:41:42 +00:00
nfs_subs.c I have not one single time remembered the name of this function correctly 1999-07-17 18:43:50 +00:00
nfs_syscalls.c Matt's NFS fixes. 1999-06-23 04:44:14 +00:00
nfs_vfsops.c Various changes lifted from the OpenBSD cvs tree: 1999-06-05 05:35:03 +00:00
nfs_vnops.c Fix two bugs in nfs_readdirplus(). The first is that in some cases, 1999-07-30 04:02:04 +00:00
nfs.h remove b_proc from struct buf, it's (now) unused. 1999-05-06 20:00:34 +00:00
nfsdiskless.h Removed more vestiges of config-time swap configuration. 1997-09-07 12:56:46 +00:00
nfsm_subs.h Matt's NFS fixes. 1999-06-23 04:44:14 +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 Reimplement the NFS ACCESS RPC cache as an "accelerator" rather than a true 1998-11-15 20:36:18 +00:00
nfsproto.h For the on-the-wire protocol, u_long -> u_int32_t; long -> int32_t; 1998-05-31 20:09:01 +00:00
nfsrtt.h For the on-the-wire protocol, u_long -> u_int32_t; long -> int32_t; 1998-05-31 20:09:01 +00:00
nfsrvcache.h For the on-the-wire protocol, u_long -> u_int32_t; long -> int32_t; 1998-05-31 20:09:01 +00:00
nfsv2.h Delete the #if 0 (nearly) duplicate definitions of nfsproto.h. Having 1998-05-13 06:40:56 +00:00
nqnfs.h Use u_int32_t in NQFHHASH instead of u_long. 1998-07-05 10:13:22 +00:00
rpcv2.h For the on-the-wire protocol, u_long -> u_int32_t; long -> int32_t; 1998-05-31 20:09:01 +00:00
xdr_subs.h Various changes lifted from the OpenBSD cvs tree: 1999-06-05 05:35:03 +00:00