From baefc0115b09b5c2e569be34699bd755d9a5b4a3 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Wed, 16 Mar 2005 21:03:51 +0000 Subject: [PATCH] Fix some logic in port management code. svn path=/trunk/; revision=14143 --- reactos/drivers/lib/ip/network/ports.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reactos/drivers/lib/ip/network/ports.c b/reactos/drivers/lib/ip/network/ports.c index adafd869f57..17e65ff7aaf 100644 --- a/reactos/drivers/lib/ip/network/ports.c +++ b/reactos/drivers/lib/ip/network/ports.c @@ -20,8 +20,7 @@ VOID PortsStartup( PPORT_SET PortSet, RtlInitializeBitMap( &PortSet->ProtoBitmap, PortSet->ProtoBitBuffer, PortSet->PortsToOversee ); - RtlClearBits( &PortSet->ProtoBitmap, - PortSet->StartingPort, PortsToManage ); + RtlClearAllBits( &PortSet->ProtoBitmap ); ExInitializeFastMutex( &PortSet->Mutex ); } @@ -31,14 +30,16 @@ VOID PortsShutdown( PPORT_SET PortSet ) { VOID DeallocatePort( PPORT_SET PortSet, ULONG Port ) { Port = htons(Port); - RtlClearBits( &PortSet->ProtoBitmap, - PortSet->StartingPort + Port, 1 ); + ASSERT(Port >= PortSet->StartingPort); + ASSERT(Port < PortSet->StartingPort + PortSet->PortsToOversee); + RtlClearBits( &PortSet->ProtoBitmap, Port - PortSet->StartingPort, 1 ); } BOOLEAN AllocatePort( PPORT_SET PortSet, ULONG Port ) { BOOLEAN Clear; Port = htons(Port); + ASSERT(Port >= PortSet->StartingPort); Port -= PortSet->StartingPort; ExAcquireFastMutex( &PortSet->Mutex );