Author: cgutman
Date: Fri Jan 1 06:58:37 2010
New Revision: 44845
URL:
http://svn.reactos.org/svn/reactos?rev=44845&view=rev
Log:
[IP]
- Fix a small locking issue in TCPClose
Modified:
branches/aicom-network-branch/lib/drivers/ip/transport/tcp/tcp.c
Modified: branches/aicom-network-branch/lib/drivers/ip/transport/tcp/tcp.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-branch/lib/driver…
==============================================================================
--- branches/aicom-network-branch/lib/drivers/ip/transport/tcp/tcp.c [iso-8859-1]
(original)
+++ branches/aicom-network-branch/lib/drivers/ip/transport/tcp/tcp.c [iso-8859-1] Fri Jan
1 06:58:37 2010
@@ -731,24 +731,26 @@
* closure anymore but we still need it to determine
* if we caused the closure
*/
+ LockObject(Connection, &OldIrql);
Socket = Connection->SocketContext;
Connection->SocketContext = NULL;
/* We need to close here otherwise oskit will never indicate
* SEL_FIN and we will never fully close the connection
*/
- LockObject(Connection, &OldIrql);
Status = TCPTranslateError( OskitTCPClose( Socket ) );
- UnlockObject(Connection, OldIrql);
if (!NT_SUCCESS(Status))
{
Connection->SocketContext = Socket;
+ UnlockObject(Connection, OldIrql);
return Status;
}
if (Connection->AddressFile)
DereferenceObject(Connection->AddressFile);
+
+ UnlockObject(Connection, OldIrql);
DereferenceObject(Connection);