From 8928ef3f66ee57e658cd5c85aaedcd41b3c4aa9c Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 15 Jan 2020 01:03:54 +0100 Subject: [PATCH] Fixed an overrun in win/win_ui.c, a few newly introduced bugs, and a warning in the MPU-401 code. --- src/chipset/scat.c | 6 +++++- src/plat.h | 2 +- src/sound/snd_mpu401.c | 3 +-- src/win/win_new_floppy.c | 2 +- src/win/win_settings.c | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/chipset/scat.c b/src/chipset/scat.c index 271d4626a..5ffa3722a 100644 --- a/src/chipset/scat.c +++ b/src/chipset/scat.c @@ -1341,10 +1341,14 @@ mem_write_scatb(uint32_t addr, uint8_t val, void *priv) scat_t *dev; uint32_t oldaddr = addr, chkaddr; + if (page == NULL) + dev = NULL; + else + dev = (scat_t *)page->scat; + if (dev == NULL) chkaddr = oldaddr; else { - dev = (scat_t *)page->scat; addr = get_addr(dev, addr, page); chkaddr = addr; } diff --git a/src/plat.h b/src/plat.h index 065d50aa0..ec5391bae 100644 --- a/src/plat.h +++ b/src/plat.h @@ -58,7 +58,7 @@ GLOBAL int dopause, /* system is paused */ mouse_capture; /* mouse is captured in app */ GLOBAL uint64_t timer_freq; GLOBAL int infocus; -GLOBAL char emu_version[128]; /* version ID string */ +GLOBAL char emu_version[200]; /* version ID string */ GLOBAL int rctrl_is_lalt; GLOBAL int update_icons; diff --git a/src/sound/snd_mpu401.c b/src/sound/snd_mpu401.c index 4fb9bea30..b2be5e1cd 100644 --- a/src/sound/snd_mpu401.c +++ b/src/sound/snd_mpu401.c @@ -1337,7 +1337,7 @@ MPU401_InputMsg(void *p, uint8_t *msg) uint8_t len = msg[3], key; uint8_t recdata[2], recmsg[4]; int send = 1, send_thru = 0; - int retrigger_thru = 0, midistatus = 0, chan, chrefnum; + int retrigger_thru = 0, chan, chrefnum; /* Abort if sysex transfer is in progress. */ if (!mpu->state.sysex_in_finished) { @@ -1350,7 +1350,6 @@ MPU401_InputMsg(void *p, uint8_t *msg) if (mpu->mode == M_INTELLIGENT) { if (msg[0] < 0x80) { /* Expand running status */ - midistatus = 1; msg[2] = msg[1]; msg[1] = msg[0]; msg[0] = old_msg; diff --git a/src/win/win_new_floppy.c b/src/win/win_new_floppy.c index e773e54e2..b06e41834 100644 --- a/src/win/win_new_floppy.c +++ b/src/win/win_new_floppy.c @@ -551,7 +551,7 @@ NewFloppyDialogProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) switch (message) { case WM_INITDIALOG: plat_pause(1); - memset(fd_file_name, 0, 512 * sizeof(wchar_t)); + memset(fd_file_name, 0, 1024 * sizeof(wchar_t)); h = GetDlgItem(hdlg, IDC_COMBO_DISK_SIZE); if (is_zip) { zip_types = zip_drives[fdd_id].is_250 ? 2 : 1; diff --git a/src/win/win_settings.c b/src/win/win_settings.c index 133103107..8b9dff3c8 100644 --- a/src/win/win_settings.c +++ b/src/win/win_settings.c @@ -3463,7 +3463,7 @@ win_settings_floppy_drives_recalc_list(HWND hwndList) { LVITEM lvI; int i = 0; - char s[256], t; + char s[256], *t; WCHAR szText[256]; lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;