diff options
author | Wohlstand <admin@wohlnet.ru> | 2025-03-30 00:33:03 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2025-03-30 00:33:03 +0300 |
commit | 736233206ba15cb0e0ca8f4fcedb91ff4a193f21 (patch) | |
tree | 1a4cc2f6e15dfed394f030e45e39ce468f1dc72a /utils/winmm_drv | |
parent | a37298e7bed28752e8dcbe8e37e355fe47bf5e99 (diff) | |
download | libADLMIDI-736233206ba15cb0e0ca8f4fcedb91ff4a193f21.tar.gz libADLMIDI-736233206ba15cb0e0ca8f4fcedb91ff4a193f21.tar.bz2 libADLMIDI-736233206ba15cb0e0ca8f4fcedb91ff4a193f21.zip |
WinMM: Prevent possible crash due to array out-of-range
Diffstat (limited to 'utils/winmm_drv')
-rw-r--r-- | utils/winmm_drv/cpl/config_dialog.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/utils/winmm_drv/cpl/config_dialog.c b/utils/winmm_drv/cpl/config_dialog.c index a97e958..00fc9d9 100644 --- a/utils/winmm_drv/cpl/config_dialog.c +++ b/utils/winmm_drv/cpl/config_dialog.c @@ -310,6 +310,8 @@ static void warnIfOutChanged(HWND hwnd) INT_PTR CALLBACK ToolDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { + int ret; + switch(Message) { case WM_INITDIALOG: @@ -369,7 +371,9 @@ INT_PTR CALLBACK ToolDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPar case IDC_EMULATOR: if(HIWORD(wParam) == CBN_SELCHANGE) { - g_setup.emulatorId = (int)emulator_type_id[SendMessageW((HWND)lParam, (UINT)CB_GETCURSEL, (WPARAM)0, (LPARAM)0)]; + ret = SendMessageW((HWND)lParam, (UINT)CB_GETCURSEL, (WPARAM)0, (LPARAM)0); + if(ret >= 0 && ret < ADLMIDI_EMU_end) + g_setup.emulatorId = (int)emulator_type_id[ret]; } break; |