diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 0469f8751b..2e03175b3a 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -1402,7 +1402,7 @@ static int action_bind_sublabel_systeminfo_controller_entry( const char *label, const char *path, char *s, size_t len) { - char tmp[4096]; + char tmp[NAME_MAX_LENGTH]; unsigned controller; const char *val_port_dev_name = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PORT_DEVICE_NAME); @@ -1533,7 +1533,7 @@ static int action_bind_sublabel_subsystem_load( char *s, size_t len) { unsigned j = 0; - char buf[4096]; + char buf[PATH_MAX_LENGTH]; buf[0] = '\0'; @@ -1734,7 +1734,7 @@ static int action_bind_sublabel_netplay_room(file_list_t *list, char *s, size_t len) { size_t _len; - char buf[512]; + char buf[NAME_MAX_LENGTH]; struct netplay_room *room; net_driver_state_t *net_st = networking_state_get_ptr(); unsigned room_index = type - MENU_SETTINGS_NETPLAY_ROOMS_START; @@ -1788,7 +1788,7 @@ static int action_bind_sublabel_netplay_kick_client(file_list_t *list, const char *label, const char *path, char *s, size_t len) { - char buf[512]; + char buf[NAME_MAX_LENGTH]; netplay_client_info_t *client; const char *status = NULL; size_t idx = list->list[i].entry_idx; @@ -3997,7 +3997,7 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, break; case MENU_ENUM_LABEL_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_remap_sort_by_controller_enable); - break; + break; case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_autosave_interval); break; diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c index 0e5667db2e..5af0c5df8e 100644 --- a/menu/drivers/ozone.c +++ b/menu/drivers/ozone.c @@ -631,11 +631,9 @@ struct ozone_handle char tab_path[PATH_MAX_LENGTH]; /* These have to be huge, because runloop_st->name.savestate - * has a hard-coded size of 8192... - * (the extra space here is required to silence compiler - * warnings...) */ - char savestate_thumbnail_file_path[8204]; /* TODO/FIXME - check size */ - char prev_savestate_thumbnail_file_path[8204]; /* TODO/FIXME - check size */ + * has a hard-coded size of (PATH_MAX_LENGTH * 2)... */ + char savestate_thumbnail_file_path[(PATH_MAX_LENGTH * 2)]; + char prev_savestate_thumbnail_file_path[(PATH_MAX_LENGTH * 2)]; char thumbnails_left_status_prev; char thumbnails_right_status_prev; @@ -3716,7 +3714,7 @@ static void ozone_update_savestate_thumbnail_path(void *data, unsigned i) || string_is_equal(entry.label, "savestate")) { size_t _len; - char path[8204]; /* TODO/FIXME - check size */ + char path[PATH_MAX_LENGTH * 2]; runloop_state_t *runloop_st = runloop_state_get_ptr(); /* State slot dropdown */ diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index c0cca980f6..1e3c346198 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -345,11 +345,9 @@ typedef struct menu_input_pointer_t pointer; /* These have to be huge, because runloop_st->name.savestate - * has a hard-coded size of 8192... - * (the extra space here is required to silence compiler - * warnings...) */ - char savestate_thumbnail_file_path[8204]; /* TODO/FIXME - check size */ - char prev_savestate_thumbnail_file_path[8204]; /* TODO/FIXME - check size */ + * has a hard-coded size of (PATH_MAX_LENGTH * 2)... */ + char savestate_thumbnail_file_path[PATH_MAX_LENGTH * 2]; + char prev_savestate_thumbnail_file_path[PATH_MAX_LENGTH * 2]; char menu_title[NAME_MAX_LENGTH]; /* Must be a fixed length array... */ char msgbox[1024]; @@ -6892,7 +6890,7 @@ static void rgui_update_savestate_thumbnail_path(void *data, unsigned i) || string_is_equal(entry.label, "savestate")) { size_t _len; - char path[8204]; /* TODO/FIXME - check size */ + char path[PATH_MAX_LENGTH * 2]; runloop_state_t *runloop_st = runloop_state_get_ptr(); /* State slot dropdown */ diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b9b661070f..3f0447a09c 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -434,11 +434,9 @@ typedef struct xmb_handle char entry_index_offset; /* These have to be huge, because runloop_st->name.savestate - * has a hard-coded size of 8192... - * (the extra space here is required to silence compiler - * warnings...) */ - char savestate_thumbnail_file_path[8204]; /* TODO/FIXME - check size */ - char prev_savestate_thumbnail_file_path[8204]; /* TODO/FIXME - check size */ + * has a hard-coded size of (PATH_MAX_LENGTH * 2)... */ + char savestate_thumbnail_file_path[PATH_MAX_LENGTH * 2]; + char prev_savestate_thumbnail_file_path[PATH_MAX_LENGTH * 2]; char fullscreen_thumbnail_label[NAME_MAX_LENGTH]; bool allow_horizontal_animation; @@ -1264,7 +1262,7 @@ static void xmb_update_savestate_thumbnail_path(void *data, unsigned i) || string_is_equal(entry.label, "savestate")) { size_t _len; - char path[8204]; /* TODO/FIXME - check size */ + char path[PATH_MAX_LENGTH * 2]; runloop_state_t *runloop_st = runloop_state_get_ptr(); /* State slot dropdown */ @@ -2962,7 +2960,7 @@ static void xmb_populate_entries(void *data, { if(settings->uints.menu_icon_thumbnails) xmb_populate_dynamic_icons(xmb); - } + } else if(xmb->thumbnails.pending_icons != XMB_PENDING_THUMBNAIL_NONE ) { xmb_unload_icon_thumbnail_textures(xmb); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index ea1643b8df..93e3f9b101 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -7960,7 +7960,7 @@ unsigned menu_displaylist_build_list( {MENU_ENUM_LABEL_INPUT_MAX_USERS, PARSE_ONLY_UINT, true }, {MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE, PARSE_ONLY_BOOL, true }, - {MENU_ENUM_LABEL_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR, PARSE_ONLY_UINT, true }, {MENU_ENUM_LABEL_INPUT_ICADE_ENABLE, PARSE_ONLY_BOOL, true }, {MENU_ENUM_LABEL_INPUT_SMALL_KEYBOARD_ENABLE, PARSE_ONLY_BOOL, true }, @@ -12176,17 +12176,17 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, if (!strstr(descriptor, "Auto")) { - char desc_label[400]; + char desc_lbl[400]; const struct retro_keybind *keyptr = &input_config_binds[port][retro_id]; - size_t _len = strlcpy(desc_label, + size_t _len = strlcpy(desc_lbl, msg_hash_to_str(keyptr->enum_idx), - sizeof(desc_label)); - desc_label[ _len] = ','; - desc_label[++_len] = ' '; - desc_label[++_len] = '\0'; - strlcpy(desc_label + _len, descriptor, sizeof(desc_label) - _len); - desc_len = strlcpy(descriptor, desc_label, sizeof(descriptor)); + sizeof(desc_lbl)); + desc_lbl[ _len] = ','; + desc_lbl[++_len] = ' '; + desc_lbl[++_len] = '\0'; + strlcpy(desc_lbl + _len, descriptor, sizeof(desc_lbl) - _len); + desc_len = strlcpy(descriptor, desc_lbl, sizeof(descriptor)); } /* Add user index when display driver == rgui and sublabels @@ -12229,17 +12229,17 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, if (!strstr(descriptor, "Auto")) { - char desc_label[400]; + char desc_lbl[400]; const struct retro_keybind *keyptr = &input_config_binds[port][retro_id]; - size_t _len = strlcpy(desc_label, + size_t _len = strlcpy(desc_lbl, msg_hash_to_str(keyptr->enum_idx), - sizeof(desc_label)); - desc_label[ _len] = ','; - desc_label[++_len] = ' '; - desc_label[++_len] = '\0'; - strlcpy(desc_label + _len, descriptor, sizeof(desc_label) - _len); - desc_len = strlcpy(descriptor, desc_label, sizeof(descriptor)); + sizeof(desc_lbl)); + desc_lbl[ _len] = ','; + desc_lbl[++_len] = ' '; + desc_lbl[++_len] = '\0'; + strlcpy(desc_lbl + _len, descriptor, sizeof(desc_lbl) - _len); + desc_len = strlcpy(descriptor, desc_lbl, sizeof(descriptor)); } /* Add user index when display driver == rgui and sublabels diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 8979006ef2..e4fd4852aa 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -447,7 +447,7 @@ typedef struct char file_name[NAME_MAX_LENGTH]; } last_start_content; - char menu_state_msg[8192]; + char menu_state_msg[PATH_MAX_LENGTH * 2]; /* Scratchpad variables. These are used for instance * by the filebrowser when having to store intermediary * paths (subdirs/previous dirs/current dir/path, etc). diff --git a/runloop.h b/runloop.h index c385ace277..0bc07a8fa5 100644 --- a/runloop.h +++ b/runloop.h @@ -269,11 +269,7 @@ struct runloop uint32_t flags; int8_t run_frames_and_pause; - char runtime_content_path_basename[8192]; /* TODO/FIXME - check size */ - char current_library_name[NAME_MAX_LENGTH]; - char current_library_version[256]; - char current_valid_extensions[256]; - char subsystem_path[256]; + char runtime_content_path_basename[PATH_MAX_LENGTH]; #ifdef HAVE_SCREENSHOTS char max_frames_screenshot_path[PATH_MAX_LENGTH]; #endif @@ -284,19 +280,23 @@ struct runloop char runtime_core_path[PATH_MAX_LENGTH]; char savefile_dir[DIR_MAX_LENGTH]; char savestate_dir[DIR_MAX_LENGTH]; + char current_library_name[NAME_MAX_LENGTH]; + char current_valid_extensions[256]; + char subsystem_path[256]; + char current_library_version[64]; struct { char *remapfile; - char savefile[8192]; /* TODO/FIXME - check size */ - char savestate[8192]; /* TODO/FIXME - check size */ - char replay[8192]; /* TODO/FIXME - check size */ - char cheatfile[8192]; /* TODO/FIXME - check size */ - char ups[8192]; /* TODO/FIXME - check size */ - char bps[8192]; /* TODO/FIXME - check size */ - char ips[8192]; /* TODO/FIXME - check size */ - char xdelta[8192]; /* TODO/FIXME - check size */ - char label[8192]; /* TODO/FIXME - check size */ + char savefile [PATH_MAX_LENGTH*2]; + char savestate[PATH_MAX_LENGTH*2]; + char replay [PATH_MAX_LENGTH*2]; + char cheatfile[PATH_MAX_LENGTH*2]; + char ups [PATH_MAX_LENGTH*2]; + char bps [PATH_MAX_LENGTH*2]; + char ips [PATH_MAX_LENGTH*2]; + char xdelta [PATH_MAX_LENGTH*2]; + char label [PATH_MAX_LENGTH*2]; } name; bool missing_bios;