From 707657f9005f0fcb65daaaf377a863c804a1fd56 Mon Sep 17 00:00:00 2001 From: fhorse Date: Sun, 13 Jan 2019 16:29:47 +0100 Subject: [PATCH] Fixed a possible crash. --- src/core/fds.c | 10 +++++----- src/core/mappers.c | 14 ++++++++------ src/core/patcher.c | 7 ++++--- src/core/save_slot.c | 7 ++++--- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/core/fds.c b/src/core/fds.c index 0252bbab7..a7320da80 100644 --- a/src/core/fds.c +++ b/src/core/fds.c @@ -453,14 +453,14 @@ void fds_diff_op(BYTE mode, uint32_t position, WORD value) { uTCHAR ext[10], basename[255], *last_dot; gui_utf_basename(info.rom.file, basename, usizeof(basename)); - usnprintf(file, usizeof(file), uL("" uPERCENTs DIFF_FOLDER "/" uPERCENTs), - info.base_folder, basename); + usnprintf(file, usizeof(file), uL("" uPERCENTs DIFF_FOLDER "/" uPERCENTs), info.base_folder, basename); usnprintf(ext, usizeof(ext), uL("dif")); // rintraccio l'ultimo '.' nel nome - last_dot = ustrrchr(file, uL('.')); - // elimino l'estensione - *last_dot = 0x00; + if ((last_dot = ustrrchr(file, uL('.')))) { + // elimino l'estensione + *last_dot = 0x00; + }; // aggiungo l'estensione ustrcat(file, ext); diff --git a/src/core/mappers.c b/src/core/mappers.c index 054cb912e..94ec14dc3 100644 --- a/src/core/mappers.c +++ b/src/core/mappers.c @@ -1104,9 +1104,10 @@ void map_prg_ram_init(void) { uL("" uPERCENTs PRB_FOLDER "/" uPERCENTs), info.base_folder, basename); /* rintraccio l'ultimo '.' nel nome */ - last_dot = ustrrchr(prg_ram_file, uL('.')); - /* elimino l'estensione */ - *last_dot = 0x00; + if ((last_dot = ustrrchr(prg_ram_file, uL('.')))) { + /* elimino l'estensione */ + *last_dot = 0x00; + } /* aggiungo l'estensione prb */ ustrcat(prg_ram_file, uL(".prb")); /* provo ad aprire il file */ @@ -1175,9 +1176,10 @@ void map_prg_ram_battery_save(void) { uL("" uPERCENTs PRB_FOLDER "/" uPERCENTs), info.base_folder, basename); /* rintraccio l'ultimo '.' nel nome */ - last_dot = ustrrchr(prg_ram_file, uL('.')); - /* elimino l'estensione */ - *last_dot = 0x00; + if ((last_dot = ustrrchr(prg_ram_file, uL('.')))) { + /* elimino l'estensione */ + *last_dot = 0x00; + } /* aggiungo l'estensione prb */ ustrcat(prg_ram_file, uL(".prb")); /* apro il file */ diff --git a/src/core/patcher.c b/src/core/patcher.c index f5be5f939..1f495f8e6 100644 --- a/src/core/patcher.c +++ b/src/core/patcher.c @@ -121,9 +121,10 @@ BYTE patcher_ctrl_if_exist(uTCHAR *patch) { uTCHAR *last_dot; // rintraccio l'ultimo '.' nel nome - last_dot = ustrrchr(file, uL('.')); - // elimino l'estensione - *last_dot = 0x00; + if ((last_dot = ustrrchr(file, uL('.')))) { + // elimino l'estensione + *last_dot = 0x00; + }; // aggiungo l'estensione ustrcat(file, patch_ext[i]); diff --git a/src/core/save_slot.c b/src/core/save_slot.c index 1c5afae94..1975743c0 100644 --- a/src/core/save_slot.c +++ b/src/core/save_slot.c @@ -832,9 +832,10 @@ static uTCHAR *name_slot_file(BYTE slot) { } // rintraccio l'ultimo '.' nel nome - last_dot = ustrrchr(file, uL('.')); - // elimino l'estensione - *last_dot = 0x00; + if ((last_dot = ustrrchr(file, uL('.')))) { + // elimino l'estensione + *last_dot = 0x00; + } // aggiungo l'estensione ustrcat(file, ext);