diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c index e0bf737e2f..d50f329633 100644 --- a/dlls/winmm/lolvldrv.c +++ b/dlls/winmm/lolvldrv.c @@ -763,10 +763,16 @@ void MMDRV_Exit(void) MMDRV_ExitPerType(&MMDrvs[i], MMDRV_WAVEOUT); CloseDriver(MMDrvs[i].hDriver, 0, 0); } - HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_AUX].lpMlds - 1); - HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_MIXER].lpMlds - 1); - HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_MIDIIN].lpMlds - 1); - HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_MIDIOUT].lpMlds - 1); - HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_WAVEIN].lpMlds - 1); - HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_WAVEOUT].lpMlds - 1); + if (llTypes[MMDRV_AUX].lpMlds) + HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_AUX].lpMlds - 1); + if (llTypes[MMDRV_MIXER].lpMlds) + HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_MIXER].lpMlds - 1); + if (llTypes[MMDRV_MIDIIN].lpMlds) + HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_MIDIIN].lpMlds - 1); + if (llTypes[MMDRV_MIDIOUT].lpMlds) + HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_MIDIOUT].lpMlds - 1); + if (llTypes[MMDRV_WAVEIN].lpMlds) + HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_WAVEIN].lpMlds - 1); + if (llTypes[MMDRV_WAVEOUT].lpMlds) + HeapFree(GetProcessHeap(), 0, llTypes[MMDRV_WAVEOUT].lpMlds - 1); }