- Fix IPPacket double free in IPSendDatagram failure case

svn path=/trunk/; revision=54620
This commit is contained in:
Cameron Gutman 2011-12-08 21:21:25 +00:00
parent 798a3cfa96
commit dfcc357969
4 changed files with 0 additions and 35 deletions

View 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;

View file

@ -254,10 +254,7 @@ NTSTATUS RawIPSendDatagram(
Status = IPSendDatagram(&Packet, NCE);
if (!NT_SUCCESS(Status))
{
Packet.Free(&Packet);
return Status;
}
*DataUsed = DataSize;

View 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;
}

View file

@ -230,10 +230,7 @@ NTSTATUS UDPSendDatagram(
Status = IPSendDatagram(&Packet, NCE);
if (!NT_SUCCESS(Status))
{
Packet.Free(&Packet);
return Status;
}
*DataUsed = DataSize;