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>
This commit is contained in:
parent
844a25ab38
commit
327897992b
|
@ -329,9 +329,8 @@ static HRESULT WINAPI LinuxInputEffectImpl_GetParameters(
|
||||||
peff->dwSamplePeriod = 0;
|
peff->dwSamplePeriod = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dwFlags & DIEP_STARTDELAY) {
|
if ((dwFlags & DIEP_STARTDELAY) && peff->dwSize > sizeof(DIEFFECT_DX5))
|
||||||
peff->dwStartDelay = This->effect.replay.delay * 1000;
|
peff->dwStartDelay = This->effect.replay.delay * 1000;
|
||||||
}
|
|
||||||
|
|
||||||
if (dwFlags & DIEP_TRIGGERBUTTON) {
|
if (dwFlags & DIEP_TRIGGERBUTTON) {
|
||||||
FIXME("LinuxInput button mapping needs redoing; for now, assuming we're using an actual joystick.\n");
|
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");
|
TRACE("Sample period requested but no sample period functionality present.\n");
|
||||||
|
|
||||||
if (dwFlags & DIEP_STARTDELAY)
|
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 (dwFlags & DIEP_TRIGGERBUTTON) {
|
||||||
if (peff->dwTriggerButton != -1) {
|
if (peff->dwTriggerButton != -1) {
|
||||||
|
|
Loading…
Reference in New Issue