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/oskitt…
==============================================================================
--- 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++;