[TCPIP]
authorCameron Gutman <aicommander@gmail.com>
Thu, 8 Dec 2011 21:21:25 +0000 (21:21 +0000)
committerCameron Gutman <aicommander@gmail.com>
Thu, 8 Dec 2011 21:21:25 +0000 (21:21 +0000)
- Fix IPPacket double free in IPSendDatagram failure case

svn path=/trunk/; revision=54620

reactos/lib/drivers/ip/network/icmp.c
reactos/lib/drivers/ip/transport/rawip/rawip.c
reactos/lib/drivers/ip/transport/tcp/if.c
reactos/lib/drivers/ip/transport/udp/udp.c

index 5af8086..42815ba 100644 (file)
@@ -24,29 +24,6 @@ NTSTATUS ICMPShutdown()
     return STATUS_SUCCESS;
 }
 
-VOID SendICMPComplete(
-    PVOID Context,
-    PNDIS_PACKET Packet,
-    NDIS_STATUS NdisStatus)
-/*
- * FUNCTION: ICMP datagram transmit completion handler
- * ARGUMENTS:
- *     Context    = Pointer to context infomation (IP_PACKET)
- *     Packet     = Pointer to NDIS packet
- *     NdisStatus = Status of transmit operation
- * NOTES:
- *     This routine is called by IP when a ICMP send completes
- */
-{
-    TI_DbgPrint(DEBUG_ICMP, ("Freeing NDIS packet (%X).\n", Packet));
-
-    /* Free packet */
-    FreeNdisPacket(Packet);
-
-    TI_DbgPrint(DEBUG_ICMP, ("Done\n"));
-}
-
-
 BOOLEAN PrepareICMPPacket(
     PADDRESS_FILE AddrFile,
     PIP_INTERFACE Interface,
@@ -219,10 +196,7 @@ NTSTATUS ICMPSendDatagram(
 
     Status = IPSendDatagram(&Packet, NCE);
     if (!NT_SUCCESS(Status))
-    {
-        Packet.Free(&Packet);
         return Status;
-    }
     
     *DataUsed = DataSize;
 
index f003f6f..f9ce896 100644 (file)
@@ -254,10 +254,7 @@ NTSTATUS RawIPSendDatagram(
 
     Status = IPSendDatagram(&Packet, NCE);
     if (!NT_SUCCESS(Status))
-    {
-        Packet.Free(&Packet);
         return Status;
-    }
 
     *DataUsed = DataSize;
 
index 16c993b..9531738 100644 (file)
@@ -61,10 +61,7 @@ TCPSendDataCallback(struct netif *netif, struct pbuf *p, struct ip_addr *dest)
 
     NdisStatus = IPSendDatagram(&Packet, NCE);
     if (!NT_SUCCESS(NdisStatus))
-    {
-        Packet.Free(&Packet);
         return ERR_RTE;
-    }
 
     return 0;
 }
index a22ff02..6cc56a1 100644 (file)
@@ -230,10 +230,7 @@ NTSTATUS UDPSendDatagram(
 
     Status = IPSendDatagram(&Packet, NCE);
     if (!NT_SUCCESS(Status))
-    {
-        Packet.Free(&Packet);
         return Status;
-    }
 
     *DataUsed = DataSize;