Author: cgutman
Date: Wed Dec 17 14:48:52 2008
New Revision: 38158
URL: 
http://svn.reactos.org/svn/reactos?rev=38158&view=rev
Log:
Check the status of IPSendDatagram
Modified:
    branches/aicom-network-fixes/lib/drivers/ip/transport/rawip/rawip.c
    branches/aicom-network-fixes/lib/drivers/ip/transport/tcp/event.c
    branches/aicom-network-fixes/lib/drivers/ip/transport/udp/udp.c
Modified: branches/aicom-network-fixes/lib/drivers/ip/transport/rawip/rawip.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/lib/drivers…
==============================================================================
--- branches/aicom-network-fixes/lib/drivers/ip/transport/rawip/rawip.c [iso-8859-1]
(original)
+++ branches/aicom-network-fixes/lib/drivers/ip/transport/rawip/rawip.c [iso-8859-1] Wed
Dec 17 14:48:52 2008
@@ -230,7 +230,11 @@
     TI_DbgPrint(MID_TRACE,("About to send datagram\n"));
-    IPSendDatagram( &Packet, NCE, RawIpSendPacketComplete, NULL );
+    if (!NT_SUCCESS(Status = IPSendDatagram( &Packet, NCE, RawIpSendPacketComplete,
NULL )))
+    {
+        FreeNdisPacket(Packet.NdisPacket);
+        return Status;
+    }
     TI_DbgPrint(MID_TRACE,("Leaving\n"));
Modified: branches/aicom-network-fixes/lib/drivers/ip/transport/tcp/event.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/lib/drivers…
==============================================================================
--- branches/aicom-network-fixes/lib/drivers/ip/transport/tcp/event.c [iso-8859-1]
(original)
+++ branches/aicom-network-fixes/lib/drivers/ip/transport/tcp/event.c [iso-8859-1] Wed Dec
17 14:48:52 2008
@@ -64,6 +64,7 @@
     IP_PACKET Packet = { 0 };
     IP_ADDRESS RemoteAddress, LocalAddress;
     PIPv4_HEADER Header;
+    NTSTATUS Status;
     if( *data == 0x45 ) { /* IPv4 */
        Header = (PIPv4_HEADER)data;
@@ -102,7 +103,11 @@
     Packet.SrcAddr = LocalAddress;
     Packet.DstAddr = RemoteAddress;
-    IPSendDatagram( &Packet, NCE, TCPPacketSendComplete, NULL );
+    if (!NT_SUCCESS(Status = IPSendDatagram( &Packet, NCE, TCPPacketSendComplete,
NULL )))
+    {
+        FreeNdisPacket(Packet.NdisPacket);
+        return OSK_EINVAL;
+    }
     return 0;
 }
Modified: branches/aicom-network-fixes/lib/drivers/ip/transport/udp/udp.c
URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/lib/drivers…
==============================================================================
--- branches/aicom-network-fixes/lib/drivers/ip/transport/udp/udp.c [iso-8859-1]
(original)
+++ branches/aicom-network-fixes/lib/drivers/ip/transport/udp/udp.c [iso-8859-1] Wed Dec
17 14:48:52 2008
@@ -200,7 +200,11 @@
        return STATUS_UNSUCCESSFUL;
     }
-    IPSendDatagram( &Packet, NCE, UDPSendPacketComplete, NULL );
+    if (!NT_SUCCESS(Status = IPSendDatagram( &Packet, NCE, UDPSendPacketComplete,
NULL )))
+    {
+        FreeNdisPacket(Packet.NdisPacket);
+        return Status;
+    }
     return STATUS_SUCCESS;
 }