Author: greatlrd Date: Mon May 29 16:43:01 2006 New Revision: 22106
URL: http://svn.reactos.ru/svn/reactos?rev=22106&view=rev Log: Hidden bug in our tcp/ip stack, at shutdown api the so can be NULL if that happen, ReactOS will bsod the tcp/ip stack. Arty can u look if this changes is right if not revert it. This changes was tested in fireforx at http://www.mirc.com/get.html and try d/l mirc. This patch do not make firefox bsod, instead it genrate a long crash log at serial debug.
Modified: trunk/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c
Modified: trunk/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/lib/drivers/oskittcp/oskittc... ============================================================================== --- trunk/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c (original) +++ trunk/reactos/lib/drivers/oskittcp/oskittcp/uipc_socket.c Mon May 29 16:43:01 2006 @@ -827,6 +827,19 @@ register struct socket *so; register int how; { + if (so == NULL) + { + register struct protosw *pr = NULL; + + how++; + if (how & FREAD) + sorflush(so); + if (how & FWRITE) + return ((*pr->pr_usrreq)(so, PRU_SHUTDOWN, + (struct mbuf *)0, (struct mbuf *)0, (struct mbuf *)0)); + return (0); + } + register struct protosw *pr = so->so_proto;
how++;