Bruno Jesus : dinput: Do not read/ write past the struct for old DX versions.
Module: wine Branch: master Commit: 327897992b83e77abe30d47eecf6d6b6d78d9cff URL: http://source.winehq.org/git/wine.git/?a=commit;h=327897992b83e77abe30d47eec... Author: Bruno Jesus <00cpxxx(a)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(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)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) {
participants (1)
-
Alexandre Julliard