- Initialize packets before using them

- Make PrepareICMPPacket return BOOLEAN
 - Call the packet's free function to free it
 - Remove unnecessary NULL checks
 - Part 1 of 2

svn path=/trunk/; revision=40355
This commit is contained in:
Cameron Gutman 2009-04-04 00:23:09 +00:00
parent 485b36d2f8
commit 48a474fded
6 changed files with 14 additions and 9 deletions

View file

@ -253,6 +253,8 @@ VOID ARPReceive(
SenderHWAddress,
LAN_PROTO_ARP);
}
Packet->Free(Packet);
}
/* EOF */

View file

@ -34,7 +34,7 @@ VOID SendICMPComplete(
}
PIP_PACKET PrepareICMPPacket(
BOOLEAN PrepareICMPPacket(
PIP_INTERFACE Interface,
PIP_PACKET IPPacket,
PIP_ADDRESS Destination,
@ -57,6 +57,8 @@ PIP_PACKET PrepareICMPPacket(
TI_DbgPrint(DEBUG_ICMP, ("Called. DataSize (%d).\n", DataSize));
IPInitializePacket(IPPacket, IP_ADDRESS_V4);
/* No special flags */
IPPacket->Flags = 0;
@ -65,7 +67,7 @@ PIP_PACKET PrepareICMPPacket(
/* Allocate NDIS packet */
NdisStatus = AllocatePacketWithBuffer( &NdisPacket, NULL, Size );
if( !NT_SUCCESS(NdisStatus) ) return NULL;
if( !NT_SUCCESS(NdisStatus) ) return FALSE;
IPPacket->NdisPacket = NdisPacket;
@ -114,7 +116,7 @@ PIP_PACKET PrepareICMPPacket(
TI_DbgPrint(MID_TRACE,("Leaving\n"));
return IPPacket;
return TRUE;
}

View file

@ -46,6 +46,9 @@ VOID LoopTransmit(
return;
}
/* FIXME: IPv4 only */
IPInitializePacket(&IPPacket, IP_ADDRESS_V4);
NdisGetFirstBufferFromPacket(XmitPacket,
&NdisBuffer,
&IPPacket.Header,

View file

@ -608,11 +608,13 @@ VOID IPReceive( PIP_INTERFACE IF, PIP_PACKET IPPacket )
case 6:
IPPacket->Type = IP_ADDRESS_V6;
TI_DbgPrint(MAX_TRACE, ("Datagram of type IPv6 discarded.\n"));
return;
break;
default:
TI_DbgPrint(MIN_TRACE, ("Datagram has an unsupported IP version %d.\n", Version));
return;
break;
}
IPPacket->Free(IPPacket);
}
/* EOF */

View file

@ -107,8 +107,6 @@ NTSTATUS BuildRawIpPacket(
/* FIXME: Assumes IPv4 */
IPInitializePacket(Packet, IP_ADDRESS_V4);
if (!Packet)
return STATUS_INSUFFICIENT_RESOURCES;
Packet->TotalSize = sizeof(IPv4_HEADER) + DataLen;

View file

@ -88,8 +88,6 @@ NTSTATUS BuildUDPPacket(
/* FIXME: Assumes IPv4 */
IPInitializePacket(Packet, IP_ADDRESS_V4);
if (!Packet)
return STATUS_INSUFFICIENT_RESOURCES;
Packet->TotalSize = sizeof(IPv4_HEADER) + sizeof(UDP_HEADER) + DataLen;