mirror of
https://github.com/reactos/reactos.git
synced 2025-01-06 06:20:13 +00:00
[PORTCLS]
- fix crash / assert triggered with cwawdm driver - fix irp leak - CORE 7822 svn path=/trunk/; revision=66203
This commit is contained in:
parent
3d3bdc5873
commit
89896f9912
2 changed files with 14 additions and 1 deletions
|
@ -552,6 +552,7 @@ CIrpQueue::GetMappingWithTag(
|
|||
{
|
||||
// no irp available
|
||||
m_OutOfMapping = TRUE;
|
||||
DPRINT("GetMappingWithTag no mapping available\n");
|
||||
return STATUS_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
@ -611,6 +612,7 @@ CIrpQueue::GetMappingWithTag(
|
|||
StreamData->CurStreamHeader = (PKSSTREAM_HEADER)((ULONG_PTR)StreamData->CurStreamHeader + StreamData->CurStreamHeader->Size);
|
||||
}
|
||||
|
||||
DPRINT("GetMappingWithTag Tag %p Buffer %p Flags %lu ByteCount %lx\n", Tag, VirtualAddress, *Flags, *ByteCount);
|
||||
// done
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
@ -654,6 +656,12 @@ CIrpQueue::ReleaseMappingWithTag(
|
|||
|
||||
// remove irp from used list
|
||||
CurEntry = ExInterlockedRemoveHeadList(&m_FreeIrpList, &m_IrpListLock);
|
||||
if (CurEntry == NULL)
|
||||
{
|
||||
// this should not happen
|
||||
DPRINT("ReleaseMappingWithTag Tag %p not found\n", Tag);
|
||||
return STATUS_NOT_FOUND;
|
||||
}
|
||||
|
||||
// sanity check
|
||||
PC_ASSERT(CurEntry);
|
||||
|
@ -743,6 +751,11 @@ CIrpQueue::ReleaseMappingWithTag(
|
|||
// complete the request
|
||||
IoCompleteRequest(Irp, IO_SOUND_INCREMENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
// there are still some headers not consumed
|
||||
ExInterlockedInsertHeadList(&m_FreeIrpList, &Irp->Tail.Overlay.ListEntry, &m_IrpListLock);
|
||||
}
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -228,7 +228,7 @@ CPortWavePci::Init(
|
|||
IN PRESOURCELIST ResourceList)
|
||||
{
|
||||
IMiniportWavePci * Miniport;
|
||||
PSERVICEGROUP ServiceGroup;
|
||||
PSERVICEGROUP ServiceGroup = 0;
|
||||
NTSTATUS Status;
|
||||
PPINCOUNT PinCount;
|
||||
PPOWERNOTIFY PowerNotify;
|
||||
|
|
Loading…
Reference in a new issue