Module: wine Branch: master Commit: 327897992b83e77abe30d47eecf6d6b6d78d9cff URL: http://source.winehq.org/git/wine.git/?a=commit;h=327897992b83e77abe30d47eec...
Author: Bruno Jesus 00cpxxx@gmail.com Date: Mon Aug 22 22:06:57 2016 -0300
dinput: Do not read/write past the struct for old DX versions.
Based on ideas by Elias Vanderstuyft.
Signed-off-by: Bruno Jesus 00cpxxx@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dinput/effect_linuxinput.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/dinput/effect_linuxinput.c b/dlls/dinput/effect_linuxinput.c index 2f3399d..642dfc0 100644 --- a/dlls/dinput/effect_linuxinput.c +++ b/dlls/dinput/effect_linuxinput.c @@ -329,9 +329,8 @@ static HRESULT WINAPI LinuxInputEffectImpl_GetParameters( peff->dwSamplePeriod = 0; }
- if (dwFlags & DIEP_STARTDELAY) { - peff->dwStartDelay = This->effect.replay.delay * 1000; - } + if ((dwFlags & DIEP_STARTDELAY) && peff->dwSize > sizeof(DIEFFECT_DX5)) + peff->dwStartDelay = This->effect.replay.delay * 1000;
if (dwFlags & DIEP_TRIGGERBUTTON) { FIXME("LinuxInput button mapping needs redoing; for now, assuming we're using an actual joystick.\n"); @@ -570,7 +569,8 @@ static HRESULT WINAPI LinuxInputEffectImpl_SetParameters( TRACE("Sample period requested but no sample period functionality present.\n");
if (dwFlags & DIEP_STARTDELAY) - This->effect.replay.delay = peff->dwStartDelay / 1000; + if ((dwFlags & DIEP_STARTDELAY) && peff->dwSize > sizeof(DIEFFECT_DX5)) + This->effect.replay.delay = peff->dwStartDelay / 1000;
if (dwFlags & DIEP_TRIGGERBUTTON) { if (peff->dwTriggerButton != -1) {