[ros-diffs] [cgutman] 40880: - Allocate space for the packet extension located at NdisPacketOobOffset + sizeof(NDIS_PACKET_OOB_DATA) - Fixes more packet corruption
cgutman at svn.reactos.org
cgutman at svn.reactos.org
Sun May 10 23:43:56 CEST 2009
Author: cgutman
Date: Mon May 11 01:43:55 2009
New Revision: 40880
URL: http://svn.reactos.org/svn/reactos?rev=40880&view=rev
Log:
- Allocate space for the packet extension located at NdisPacketOobOffset + sizeof(NDIS_PACKET_OOB_DATA)
- Fixes more packet corruption
Modified:
trunk/reactos/drivers/network/ndis/ndis/buffer.c
Modified: trunk/reactos/drivers/network/ndis/ndis/buffer.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/buffer.c?rev=40880&r1=40879&r2=40880&view=diff
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/buffer.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/buffer.c [iso-8859-1] Mon May 11 01:43:55 2009
@@ -428,7 +428,9 @@
Temp->Private.Pool = Pool;
Temp->Private.ValidCounts = TRUE;
Temp->Private.NdisPacketFlags = fPACKET_ALLOCATED_BY_NDIS;
- Temp->Private.NdisPacketOobOffset = Pool->PacketLength - sizeof(NDIS_PACKET_OOB_DATA);
+ Temp->Private.NdisPacketOobOffset = Pool->PacketLength -
+ (sizeof(NDIS_PACKET_OOB_DATA) +
+ sizeof(NDIS_PACKET_EXTENSION));
*Packet = Temp;
*Status = NDIS_STATUS_SUCCESS;
@@ -507,7 +509,8 @@
NumberOfDescriptors = 0xffff;
}
- Length = sizeof(NDIS_PACKET) + sizeof(NDIS_PACKET_OOB_DATA) + ProtocolReservedLength;
+ Length = sizeof(NDIS_PACKET) + sizeof(NDIS_PACKET_OOB_DATA) +
+ sizeof(NDIS_PACKET_EXTENSION) + ProtocolReservedLength;
Size = sizeof(NDISI_PACKET_POOL) + Length * NumberOfDescriptors;
Pool = ExAllocatePool(NonPagedPool, Size);
@@ -712,7 +715,9 @@
Temp->Private.Pool = Pool;
Temp->Private.ValidCounts = TRUE;
Temp->Private.NdisPacketFlags = fPACKET_ALLOCATED_BY_NDIS;
- Temp->Private.NdisPacketOobOffset = Pool->PacketLength - sizeof(NDIS_PACKET_OOB_DATA);
+ Temp->Private.NdisPacketOobOffset = Pool->PacketLength -
+ (sizeof(NDIS_PACKET_OOB_DATA) +
+ sizeof(NDIS_PACKET_EXTENSION));
*Packet = Temp;
*Status = NDIS_STATUS_SUCCESS;
@@ -762,7 +767,9 @@
Temp->Private.Pool = Pool;
Temp->Private.ValidCounts = TRUE;
Temp->Private.NdisPacketFlags = fPACKET_ALLOCATED_BY_NDIS;
- Temp->Private.NdisPacketOobOffset = Pool->PacketLength - sizeof(NDIS_PACKET_OOB_DATA);
+ Temp->Private.NdisPacketOobOffset = Pool->PacketLength -
+ (sizeof(NDIS_PACKET_OOB_DATA) +
+ sizeof(NDIS_PACKET_EXTENSION));
*Packet = Temp;
*Status = NDIS_STATUS_SUCCESS;
More information about the Ros-diffs
mailing list