Commit 7144849d authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Alexandre Julliard

dsound: Fix null pointer dereference for waveout in creating buffer.

parent 985df9cd
...@@ -1023,13 +1023,16 @@ HRESULT IDirectSoundBufferImpl_Create( ...@@ -1023,13 +1023,16 @@ HRESULT IDirectSoundBufferImpl_Create(
use_hw = !!(dsbd->dwFlags & DSBCAPS_LOCHARDWARE); use_hw = !!(dsbd->dwFlags & DSBCAPS_LOCHARDWARE);
TRACE("use_hw = %d, capf = 0x%08x, device->drvcaps.dwFlags = 0x%08x\n", use_hw, capf, device->drvcaps.dwFlags); TRACE("use_hw = %d, capf = 0x%08x, device->drvcaps.dwFlags = 0x%08x\n", use_hw, capf, device->drvcaps.dwFlags);
if (use_hw && (device->drvcaps.dwFlags & capf) != capf) if (use_hw && ((device->drvcaps.dwFlags & capf) != capf || !device->driver))
{ {
WARN("Format not supported for hardware buffer\n"); if (device->driver)
WARN("Format not supported for hardware buffer\n");
HeapFree(GetProcessHeap(),0,dsb->pwfx); HeapFree(GetProcessHeap(),0,dsb->pwfx);
HeapFree(GetProcessHeap(),0,dsb); HeapFree(GetProcessHeap(),0,dsb);
*pdsb = NULL; *pdsb = NULL;
return DSERR_BADFORMAT; if ((device->drvcaps.dwFlags & capf) != capf)
return DSERR_BADFORMAT;
return DSERR_GENERIC;
} }
/* FIXME: check hardware sample rate mixing capabilities */ /* FIXME: check hardware sample rate mixing capabilities */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment