mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user