driver: do not allow compiler to reload PacketSize
In theory, the compiler could reload PacketSize after the bounds check but before it's passed to NdisAllocateNetBufferAndNetBufferList. In practice, it's not actually doing that, but better safe than sorry. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
0f6296516a
commit
87ef399d1c
@ -483,7 +483,7 @@ TunProcessReceiveData(_Inout_ TUN_CTX *Ctx)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
TUN_PACKET *Packet = (TUN_PACKET *)(Ring->Data + RingHead);
|
TUN_PACKET *Packet = (TUN_PACKET *)(Ring->Data + RingHead);
|
||||||
ULONG PacketSize = Packet->Size;
|
ULONG PacketSize = *(volatile ULONG *)&Packet->Size;
|
||||||
if (PacketSize > TUN_MAX_IP_PACKET_SIZE)
|
if (PacketSize > TUN_MAX_IP_PACKET_SIZE)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user