- Revert 44301
[reactos.git] / drivers / network / tcpip / tcpip / buffer.c
index e604c7b..6858dde 100644 (file)
@@ -318,13 +318,16 @@ NDIS_STATUS PrependPacket( PNDIS_PACKET Packet, PCHAR Data, UINT Length,
     PCHAR NewBuf;
 
     if( Copy ) {
-       NewBuf = exAllocatePool( NonPagedPool, Length );
+       NewBuf = ExAllocatePoolWithTag( NonPagedPool, Length, PACKET_BUFFER_TAG );
        if( !NewBuf ) return NDIS_STATUS_RESOURCES;
        RtlCopyMemory( NewBuf, Data, Length );
     } else NewBuf = Data;
 
     NdisAllocateBuffer( &Status, &Buffer, GlobalBufferPool, NewBuf, Length );
-    if( Status != NDIS_STATUS_SUCCESS ) return Status;
+    if( Status != NDIS_STATUS_SUCCESS ) {
+        if (Copy) ExFreePoolWithTag(NewBuf, PACKET_BUFFER_TAG);
+        return Status;
+    }
 
     NdisChainBufferAtFront( Packet, Buffer );
 
@@ -342,33 +345,30 @@ void GetDataPtr( PNDIS_PACKET Packet,
     SkipToOffset( Buffer, Offset, DataOut, Size );
 }
 
-NDIS_STATUS AllocatePacketWithBufferX( PNDIS_PACKET *NdisPacket,
-                                      PCHAR Data, UINT Len,
-                                      PCHAR File, UINT Line ) {
+NDIS_STATUS AllocatePacketWithBuffer( PNDIS_PACKET *NdisPacket,
+                                     PCHAR Data, UINT Len ) {
     PNDIS_PACKET Packet;
     PNDIS_BUFFER Buffer;
     NDIS_STATUS Status;
     PCHAR NewData;
 
-    NewData = exAllocatePool( NonPagedPool, Len );
+    NewData = ExAllocatePoolWithTag( NonPagedPool, Len, PACKET_BUFFER_TAG );
     if( !NewData ) return NDIS_STATUS_RESOURCES;
 
     if( Data ) RtlCopyMemory(NewData, Data, Len);
 
     NdisAllocatePacket( &Status, &Packet, GlobalPacketPool );
     if( Status != NDIS_STATUS_SUCCESS ) {
-       exFreePool( NewData );
+       ExFreePoolWithTag( NewData, PACKET_BUFFER_TAG );
        return Status;
     }
-    TrackWithTag(NDIS_PACKET_TAG, Packet, File, Line);
 
     NdisAllocateBuffer( &Status, &Buffer, GlobalBufferPool, NewData, Len );
     if( Status != NDIS_STATUS_SUCCESS ) {
-       exFreePool( NewData );
+       ExFreePoolWithTag( NewData, PACKET_BUFFER_TAG );
        FreeNdisPacket( Packet );
        return Status;
     }
-    TrackWithTag(NDIS_BUFFER_TAG, Buffer, File, Line);
 
     NdisChainBufferAtFront( Packet, Buffer );
     *NdisPacket = Packet;
@@ -377,10 +377,8 @@ NDIS_STATUS AllocatePacketWithBufferX( PNDIS_PACKET *NdisPacket,
 }
 
 
-VOID FreeNdisPacketX
-( PNDIS_PACKET Packet,
-  PCHAR File,
-  UINT Line )
+VOID FreeNdisPacket
+( PNDIS_PACKET Packet )
 /*
  * FUNCTION: Frees an NDIS packet
  * ARGUMENTS:
@@ -400,13 +398,11 @@ VOID FreeNdisPacketX
         NdisGetNextBuffer(Buffer, &NextBuffer);
         NdisQueryBuffer(Buffer, &Data, &Length);
        TI_DbgPrint(DEBUG_PBUFFER, ("Freeing ndis buffer (0x%X)\n", Buffer));
-       UntrackFL(File,Line,Buffer,NDIS_BUFFER_TAG);
         NdisFreeBuffer(Buffer);
        TI_DbgPrint(DEBUG_PBUFFER, ("Freeing exal buffer (0x%X)\n", Data));
-        exFreePool(Data);
+        ExFreePoolWithTag(Data, PACKET_BUFFER_TAG);
     }
 
     /* Finally free the NDIS packet discriptor */
-    UntrackFL(File,Line,Packet,NDIS_PACKET_TAG);
     NdisFreePacket(Packet);
 }