dsound: Fix null pointer dereference for waveout in creating buffer.
This commit is contained in:
parent
985df9cdf0
commit
7144849d0b
|
@ -1023,13 +1023,16 @@ HRESULT IDirectSoundBufferImpl_Create(
|
|||
|
||||
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);
|
||||
if (use_hw && (device->drvcaps.dwFlags & capf) != capf)
|
||||
if (use_hw && ((device->drvcaps.dwFlags & capf) != capf || !device->driver))
|
||||
{
|
||||
if (device->driver)
|
||||
WARN("Format not supported for hardware buffer\n");
|
||||
HeapFree(GetProcessHeap(),0,dsb->pwfx);
|
||||
HeapFree(GetProcessHeap(),0,dsb);
|
||||
*pdsb = NULL;
|
||||
if ((device->drvcaps.dwFlags & capf) != capf)
|
||||
return DSERR_BADFORMAT;
|
||||
return DSERR_GENERIC;
|
||||
}
|
||||
|
||||
/* FIXME: check hardware sample rate mixing capabilities */
|
||||
|
|
Loading…
Reference in New Issue