[wdmaudiodev] Memory Leak in MSVAD ?

  • From: "Don Bell" <0dbell@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 22 Feb 2008 14:06:07 -0500

In MSVAD Simple, whenever you press the 'play' button in a media
player (played into the MSVAD device), a new stream is created:

CMiniportWaveCyclic::NewStream
  > CMiniportWaveCyclicStream::CMiniportWaveCyclicStream
     > CMiniportWaveCyclicStreamMSVAD::CMiniportWaveCyclicStreamMSVAD
        > CSaveData::CSaveData    (m_SaveData data member)
           > CSaveData::InitializeWorkItems
              > ExAllocatePoolWithTag   (for static CSaveData::m_pWorkItems)


But! But! But! ...

The only place where that pool memory (for work items) is freed - is
in CSaveData::DestroyWorkItems - which is only called in
CAdapterCommon::~CAdapterCommon.

CAdapterCommon::~CAdapterCommon in turn, is only called when the
driver is unloaded.

Hence we have here a gross memory leak in MSVAD.

I am surprised that no one has ever discovered this.

Unless I am missing something? (if so, what am I missing?)

Don
******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts:

  • » [wdmaudiodev] Memory Leak in MSVAD ?