mirror of
https://github.com/reactos/reactos.git
synced 2025-02-21 16:04:57 +00:00
- Fix many memory leaks
- Complete with the correct status svn path=/branches/aicom-network-fixes/; revision=35656
This commit is contained in:
parent
d4296ce6a5
commit
92073dfb72
1 changed files with 10 additions and 2 deletions
|
@ -89,8 +89,10 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection,
|
|||
if( Status == STATUS_PENDING ) {
|
||||
InsertHeadList( &Connection->ListenRequest, &Bucket->Entry );
|
||||
break;
|
||||
} else
|
||||
} else {
|
||||
Complete( Bucket->Request.RequestContext, Status, 0 );
|
||||
PoolFreeBuffer( Bucket );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,6 +143,7 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection,
|
|||
|
||||
Complete( Bucket->Request.RequestContext,
|
||||
STATUS_SUCCESS, Received );
|
||||
PoolFreeBuffer( Bucket );
|
||||
} else if( Status == STATUS_PENDING ) {
|
||||
InsertHeadList
|
||||
( &Connection->ReceiveRequest, &Bucket->Entry );
|
||||
|
@ -150,6 +153,7 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection,
|
|||
("Completing Receive request: %x %x\n",
|
||||
Bucket->Request, Status));
|
||||
Complete( Bucket->Request.RequestContext, Status, 0 );
|
||||
PoolFreeBuffer( Bucket );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -198,6 +202,7 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection,
|
|||
|
||||
Complete( Bucket->Request.RequestContext,
|
||||
STATUS_SUCCESS, Sent );
|
||||
PoolFreeBuffer( Bucket );
|
||||
} else if( Status == STATUS_PENDING ) {
|
||||
InsertHeadList
|
||||
( &Connection->SendRequest, &Bucket->Entry );
|
||||
|
@ -207,6 +212,7 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection,
|
|||
("Completing Send request: %x %x\n",
|
||||
Bucket->Request, Status));
|
||||
Complete( Bucket->Request.RequestContext, Status, 0 );
|
||||
PoolFreeBuffer( Bucket );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -225,13 +231,15 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection,
|
|||
ListsToErase[2] = &Connection->ConnectRequest;
|
||||
IrpStatus [2] = STATUS_UNSUCCESSFUL;
|
||||
ListsToErase[3] = 0;
|
||||
IrpStatus [3] = 0;
|
||||
|
||||
for( i = 0; ListsToErase[i]; i++ ) {
|
||||
while( !IsListEmpty( ListsToErase[i] ) ) {
|
||||
Entry = RemoveHeadList( ListsToErase[i] );
|
||||
Bucket = CONTAINING_RECORD( Entry, TDI_BUCKET, Entry );
|
||||
Complete = Bucket->Request.RequestNotifyObject;
|
||||
Complete( Bucket->Request.RequestContext, STATUS_SUCCESS, 0 );
|
||||
Complete( Bucket->Request.RequestContext, IrpStatus[i], 0 );
|
||||
PoolFreeBuffer( Bucket );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue