diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c index 1adb6c9728c..2891cc51e40 100644 --- a/dlls/dsound/buffer.c +++ b/dlls/dsound/buffer.c @@ -766,13 +766,9 @@ static HRESULT WINAPI IDirectSoundBufferImpl_GetCaps( ICOM_THIS(IDirectSoundBufferImpl,iface); TRACE("(%p)->(%p)\n",This,caps); - if (caps == NULL) + if (caps == NULL || caps->dwSize!=sizeof(*caps)) return DSERR_INVALIDPARAM; - /* I think we should check this value, not set it. See */ - /* Inside DirectX, p215. That should apply here, too. */ - caps->dwSize = sizeof(*caps); - caps->dwFlags = This->dsbd.dwFlags; if (This->hwbuf) caps->dwFlags |= DSBCAPS_LOCHARDWARE; else caps->dwFlags |= DSBCAPS_LOCSOFTWARE; diff --git a/dlls/dsound/primary.c b/dlls/dsound/primary.c index fc28794fd36..7cb438d2a67 100644 --- a/dlls/dsound/primary.c +++ b/dlls/dsound/primary.c @@ -754,13 +754,9 @@ static HRESULT WINAPI PrimaryBufferImpl_GetCaps( ICOM_THIS(PrimaryBufferImpl,iface); TRACE("(%p)->(%p)\n",This,caps); - if (caps == NULL) + if (caps == NULL || caps->dwSize!=sizeof(*caps)) return DSERR_INVALIDPARAM; - /* I think we should check this value, not set it. See */ - /* Inside DirectX, p215. That should apply here, too. */ - caps->dwSize = sizeof(*caps); - caps->dwFlags = This->dsbd.dwFlags; if (This->dsound->hwbuf) caps->dwFlags |= DSBCAPS_LOCHARDWARE; else caps->dwFlags |= DSBCAPS_LOCSOFTWARE;