freebsd-dev/sys/rpc
John Baldwin dad1421650 Fix a potential socket leak in the NFS server. If a client closes its
connection after it was accepted by the userland nfsd process but before
it was handled off to svc_vc_create() in the kernel, then svc_vc_create()
would see it as a new listen socket and try to listen on it leaving a
dangling reference to the socket.  Instead, check for disconnected sockets
and treat them like a connected socket.  The call to pru_getaddr() should
fail and cause svc_vc_create() to fail.  Note that we need to lock the
socket to get a consistent snapshot of so_state since there is a window
in soisdisconnected() where both flags are clear.

Reviewed by:	dfr, rmacklem
MFC after:	1 week
2013-04-08 19:03:01 +00:00
..
rpcsec_gss Improve error handling when unwrapping received data. 2013-04-04 15:16:53 +00:00
auth_none.c
auth_unix.c
auth.h
authunix_prot.c
clnt_dg.c Use m_get(), m_gethdr() and m_getcl() instead of historic macros. 2013-03-12 12:17:19 +00:00
clnt_rc.c Revert 195703 and 195821 as this special stop handling in NFS is now 2013-03-13 21:06:03 +00:00
clnt_stat.h
clnt_vc.c Revert 195703 and 195821 as this special stop handling in NFS is now 2013-03-13 21:06:03 +00:00
clnt.h
getnetconfig.c
krpc.h
netconfig.h
nettype.h
pmap_prot.h
replay.c
replay.h
rpc_callmsg.c
rpc_com.h
rpc_generic.c Use m_get(), m_gethdr() and m_getcl() instead of historic macros. 2013-03-12 12:17:19 +00:00
rpc_msg.h
rpc_prot.c
rpc.h
rpcb_clnt.c
rpcb_clnt.h
rpcb_prot.c
rpcb_prot.h
rpcm_subs.h Use m_get(), m_gethdr() and m_getcl() instead of historic macros. 2013-03-12 12:17:19 +00:00
rpcsec_gss.h
svc_auth_unix.c
svc_auth.c
svc_auth.h
svc_dg.c Use m_get(), m_gethdr() and m_getcl() instead of historic macros. 2013-03-12 12:17:19 +00:00
svc_generic.c
svc_vc.c Fix a potential socket leak in the NFS server. If a client closes its 2013-04-08 19:03:01 +00:00
svc.c Use m_get(), m_gethdr() and m_getcl() instead of historic macros. 2013-03-12 12:17:19 +00:00
svc.h
types.h
xdr.h