diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c
index 128bd220a4..88d64412c8 100644
--- a/menu/cbs/menu_cbs_ok.c
+++ b/menu/cbs/menu_cbs_ok.c
@@ -1847,13 +1847,20 @@ static int generic_action_ok(const char *path,
       case ACTION_OK_SET_DIRECTORY:
          flush_char = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DIRECTORY_SETTINGS_LIST);
 #ifdef HAVE_COCOATOUCH
-         // For iOS, set the path using realpath because the path name
-         // can start with /private and this ensures the path starts with it.
-         // This will allow the path to be properly substituted when fill_pathname_expand_special
-         // is called.
-         char real_action_path[PATH_MAX_LENGTH] = {0};
-         realpath(action_path, real_action_path);
-         strlcpy(action_path, real_action_path, sizeof(action_path));
+         /* For iOS, set the path using realpath because the 
+          * path name can start with /private and this ensures 
+          * the path starts with it.
+          *
+          * This will allow the path to be properly substituted 
+          * when fill_pathname_expand_special
+          * is called.
+          */
+         {
+            char real_action_path[PATH_MAX_LENGTH];
+            real_action_path[0] = '\0';
+            realpath(action_path, real_action_path);
+            strlcpy(action_path, real_action_path, sizeof(action_path));
+         }
 #endif
          ret        = set_path_generic(menu->filebrowser_label, action_path);
          break;
@@ -3228,7 +3235,8 @@ static int action_ok_path_manual_scan_directory(const char *path,
        * can start with /private and this ensures the path starts with it.
        * This will allow the path to be properly substituted when
        * fill_pathname_expand_special() is called. */
-      char real_content_dir[PATH_MAX_LENGTH] = {0};
+      char real_content_dir[PATH_MAX_LENGTH];
+      real_content_dir[0] = '\0';
       realpath(content_dir, real_content_dir);
       strlcpy(content_dir, real_content_dir, sizeof(content_dir));
    }
@@ -3350,8 +3358,10 @@ static int action_ok_set_switch_cpu_profile(const char *path,
 static int action_ok_set_switch_gpu_profile(const char *path,
       const char *label, unsigned type, size_t idx, size_t entry_idx)
 {
-   char            *profile_name = SWITCH_GPU_PROFILES[entry_idx];
-   char command[PATH_MAX_LENGTH] = {0};
+   char command[PATH_MAX_LENGTH];
+   char            *profile_name  = SWITCH_GPU_PROFILES[entry_idx];
+
+   command[0]                     = '\0';
 
    snprintf(command, sizeof(command),
          "gpu-profile set '%s'",
@@ -4238,13 +4248,10 @@ void cb_generic_download(retro_task_t *task,
          dir_path = LAKKA_UPDATE_DIR;
          break;
       case MENU_ENUM_LABEL_CB_DISCORD_AVATAR:
-      {
-         fill_pathname_application_special(buf,
-            PATH_MAX_LENGTH * sizeof(char),
-            APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_DISCORD_AVATARS);
+         fill_pathname_application_special(buf, sizeof(buf),
+               APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_DISCORD_AVATARS);
          dir_path = buf;
          break;
-      }
       default:
          RARCH_WARN("Unknown transfer type '%s' bailing out.\n",
                msg_hash_to_str(transf->enum_idx));
@@ -4655,12 +4662,12 @@ static int action_ok_add_to_favorites(const char *path,
       char core_name[PATH_MAX_LENGTH];
 
       content_label[0] = '\0';
-      core_path[0] = '\0';
-      core_name[0] = '\0';
+      core_path[0]     = '\0';
+      core_name[0]     = '\0';
 
       /* Create string list container for playlist parameters */
-      attr.i = 0;
-      str_list = string_list_new();
+      attr.i           = 0;
+      str_list         = string_list_new();
       if (!str_list)
          return 0;
 
@@ -6328,6 +6335,7 @@ static int action_ok_disk_cycle_tray_status(const char *path,
 static int action_ok_disk_image_append(const char *path,
       const char *label, unsigned type, size_t idx, size_t entry_idx)
 {
+   char image_path[PATH_MAX_LENGTH];
    rarch_system_info_t *sys_info = runloop_get_system_info();
    menu_handle_t *menu           = menu_driver_get_ptr();
    const char *menu_path         = NULL;
@@ -6337,9 +6345,8 @@ static int action_ok_disk_image_append(const char *path,
    bool audio_enable_menu_ok     = settings->bools.audio_enable_menu_ok;
 #endif
    bool menu_insert_disk_resume  = settings->bools.menu_insert_disk_resume;
-   char image_path[PATH_MAX_LENGTH];
 
-   image_path[0] = '\0';
+   image_path[0]                 = '\0';
 
    if (!menu)
       return menu_cbs_exit();
diff --git a/menu/drivers/stripes.c b/menu/drivers/stripes.c
index 1f54547c03..45b798e25d 100644
--- a/menu/drivers/stripes.c
+++ b/menu/drivers/stripes.c
@@ -892,7 +892,7 @@ static void stripes_update_thumbnail_path(void *data, unsigned i, char pos)
 {
    menu_entry_t entry;
    unsigned entry_type            = 0;
-   char new_path[PATH_MAX_LENGTH] = {0};
+   char new_path[PATH_MAX_LENGTH];
    settings_t     *settings       = config_get_ptr();
    stripes_handle_t     *stripes  = (stripes_handle_t*)data;
    playlist_t     *playlist       = NULL;
@@ -901,6 +901,8 @@ static void stripes_update_thumbnail_path(void *data, unsigned i, char pos)
    if (!stripes || string_is_empty(dir_thumbnails))
       goto end;
 
+   new_path[0]                    = '\0';
+
    menu_entry_init(&entry);
    menu_entry_get(&entry, 0, i, NULL, true);
 
@@ -2387,7 +2389,9 @@ static int stripes_draw_item(
 
    if (entry_type == FILE_TYPE_CONTENTLIST_ENTRY)
    {
-      char entry_path[PATH_MAX_LENGTH] = {0};
+      char entry_path[PATH_MAX_LENGTH];
+      
+      entry_path[0] = '\0';
       strlcpy(entry_path, entry->path, sizeof(entry_path));
 
       fill_short_pathname_representation(entry_path, entry_path,
@@ -3727,28 +3731,21 @@ static void stripes_context_reset_textures(
 
 static void stripes_context_reset_background(const char *iconpath)
 {
-   char *path                  = NULL;
+   char path[PATH_MAX_LENGTH];
    settings_t *settings        = config_get_ptr();
    const char *path_menu_wp    = settings->paths.path_menu_wallpaper;
 
-   if (!string_is_empty(path_menu_wp))
-      path = strdup(path_menu_wp);
-   else if (!string_is_empty(iconpath))
-   {
-      path    = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
-      path[0] = '\0';
+   path[0]                     = '\0';
 
-      fill_pathname_join(path, iconpath, "bg.png",
-            PATH_MAX_LENGTH * sizeof(char));
-   }
+   if (!string_is_empty(path_menu_wp))
+      strlcpy(path, path_menu_wp, sizeof(path));
+   else if (!string_is_empty(iconpath))
+      fill_pathname_join(path, iconpath, "bg.png", sizeof(path));
 
    if (path_is_valid(path))
       task_push_image_load(path,
             video_driver_supports_rgba(), 0,
             menu_display_handle_wallpaper_upload, NULL);
-
-   if (path)
-      free(path);
 }
 
 static void stripes_context_reset(void *data, bool is_threaded)
@@ -3757,9 +3754,9 @@ static void stripes_context_reset(void *data, bool is_threaded)
 
    if (stripes)
    {
-      char bg_file_path[PATH_MAX_LENGTH] = {0};
-      char *iconpath    = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
-      iconpath[0]       = '\0';
+      char iconpath    [PATH_MAX_LENGTH];
+      char bg_file_path[PATH_MAX_LENGTH];
+      iconpath[0]       = bg_file_path[0] = '\0';
 
       fill_pathname_application_special(bg_file_path,
             sizeof(bg_file_path), APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG);
@@ -3771,8 +3768,7 @@ static void stripes_context_reset(void *data, bool is_threaded)
          stripes->bg_file_path = strdup(bg_file_path);
       }
 
-      fill_pathname_application_special(iconpath,
-            PATH_MAX_LENGTH * sizeof(char),
+      fill_pathname_application_special(iconpath, sizeof(iconpath),
             APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS);
 
       stripes_layout(stripes);
@@ -3793,8 +3789,6 @@ static void stripes_context_reset(void *data, bool is_threaded)
                msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF)))
          stripes_update_thumbnail_image(stripes);
       stripes_update_savestate_thumbnail_image(stripes);
-
-      free(iconpath);
    }
    video_driver_monitor_reset();
 }
diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c
index 6515f9b4ad..d782569e71 100644
--- a/menu/drivers/xmb.c
+++ b/menu/drivers/xmb.c
@@ -2211,10 +2211,9 @@ static void xmb_context_reset_horizontal_list(
 
          if (!path_is_valid(content_texturepath))
          {
-            strlcat(iconpath, "default", PATH_MAX_LENGTH * sizeof(char));
+            strlcat(iconpath, "default", sizeof(iconpath));
             fill_pathname_join_delim(content_texturepath, iconpath,
-                  "content.png", '-',
-                  PATH_MAX_LENGTH * sizeof(char));
+                  "content.png", '-', sizeof(content_texturepath));
          }
 
          if (image_texture_load(&ti, content_texturepath))
@@ -3098,7 +3097,8 @@ static int xmb_draw_item(
 
    if (entry_type == FILE_TYPE_CONTENTLIST_ENTRY)
    {
-      char entry_path[PATH_MAX_LENGTH] = {0};
+      char entry_path[PATH_MAX_LENGTH];
+      entry_path[0] = '\0';
       strlcpy(entry_path, entry.path, sizeof(entry_path));
 
       fill_short_pathname_representation(entry_path, entry_path,
@@ -6030,8 +6030,7 @@ static void xmb_context_reset_background(const char *iconpath)
       char path[PATH_MAX_LENGTH];
       path[0] = '\0';
 
-      fill_pathname_join(path, iconpath, "bg.png",
-            PATH_MAX_LENGTH * sizeof(char));
+      fill_pathname_join(path, iconpath, "bg.png", sizeof(path));
       if (path_is_valid(path))
          task_push_image_load(path,
                video_driver_supports_rgba(), 0,
@@ -6049,8 +6048,8 @@ static void xmb_context_reset_internal(xmb_handle_t *xmb,
       bool is_threaded, bool reinit_textures)
 {
    char iconpath[PATH_MAX_LENGTH];
-   char bg_file_path[PATH_MAX_LENGTH] = {0};
-   iconpath[0]       = '\0';
+   char bg_file_path[PATH_MAX_LENGTH];
+   iconpath[0]       = bg_file_path[0] = '\0';
 
    fill_pathname_application_special(bg_file_path,
          sizeof(bg_file_path), APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG);
diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c
index 4c27bc7455..ce798d0ca3 100644
--- a/menu/menu_displaylist.c
+++ b/menu/menu_displaylist.c
@@ -1582,17 +1582,15 @@ static int create_string_list_rdb_entry_string(
       file_list_t *list)
 {
    union string_list_elem_attr attr;
-   char *tmp                        = NULL;
+   char tmp[PATH_MAX_LENGTH];
    char *output_label               = NULL;
    int str_len                      = 0;
    struct string_list *str_list     = string_list_new();
-   size_t path_size                 = PATH_MAX_LENGTH * sizeof(char);
 
    if (!str_list)
       return -1;
 
    attr.i                           = 0;
-   tmp                              = (char*)malloc(path_size);
    tmp[0]                           = '\0';
 
    str_len += strlen(label) + 1;
@@ -1609,7 +1607,6 @@ static int create_string_list_rdb_entry_string(
    if (!output_label)
    {
       string_list_free(str_list);
-      free(tmp);
       return -1;
    }
 
@@ -1617,13 +1614,12 @@ static int create_string_list_rdb_entry_string(
    string_list_free(str_list);
 
    fill_pathname_join_concat_noext(tmp, desc, ": ",
-         actual_string, path_size);
+         actual_string, sizeof(tmp));
    menu_entries_append_enum(list, tmp, output_label,
          enum_idx,
          0, 0, 0);
 
    free(output_label);
-   free(tmp);
 
    return 0;
 }
diff --git a/retroarch.c b/retroarch.c
index 14f58c4d5c..1b126f16dd 100644
--- a/retroarch.c
+++ b/retroarch.c
@@ -14651,9 +14651,8 @@ static void command_event_load_auto_state(
       global_t *global,
       struct rarch_state *p_rarch)
 {
+   char savestate_name_auto[PATH_MAX_LENGTH];
    bool ret                        = false;
-   char *savestate_name_auto       = NULL;
-   size_t savestate_name_auto_size = PATH_MAX_LENGTH * sizeof(char);
    bool savestate_auto_load        = settings->bools.savestate_auto_load;
 
    if (!global || !savestate_auto_load)
@@ -14667,17 +14666,13 @@ static void command_event_load_auto_state(
       return;
 #endif
 
-   savestate_name_auto             = (char*)calloc(PATH_MAX_LENGTH,
-         sizeof(*savestate_name_auto));
+   savestate_name_auto[0] = '\0';
 
    fill_pathname_noext(savestate_name_auto, global->name.savestate,
-         ".auto", savestate_name_auto_size);
+         ".auto", sizeof(savestate_name_auto));
 
    if (!path_is_valid(savestate_name_auto))
-   {
-      free(savestate_name_auto);
       return;
-   }
 
    ret = content_load_state(savestate_name_auto, false, true);
 
@@ -14687,8 +14682,6 @@ static void command_event_load_auto_state(
          msg_hash_to_str(MSG_AUTOLOADING_SAVESTATE_FROM),
          savestate_name_auto, ret ? "succeeded" : "failed"
          );
-
-   free(savestate_name_auto);
 }
 
 static void command_event_set_savestate_auto_index(
@@ -15054,9 +15047,7 @@ static bool command_event_save_auto_state(
       struct rarch_state *p_rarch)
 {
    bool ret                    = false;
-   char *savestate_name_auto   = NULL;
-   size_t
-      savestate_name_auto_size = PATH_MAX_LENGTH * sizeof(char);
+   char savestate_name_auto[PATH_MAX_LENGTH];
    bool savestate_auto_save    = settings->bools.savestate_auto_save;
    const enum rarch_core_type
       current_core_type        = p_rarch->current_core_type;
@@ -15074,11 +15065,10 @@ static bool command_event_save_auto_state(
       return false;
 #endif
 
-   savestate_name_auto         = (char*)
-      calloc(PATH_MAX_LENGTH, sizeof(*savestate_name_auto));
+   savestate_name_auto[0]      = '\0';
 
    fill_pathname_noext(savestate_name_auto, global->name.savestate,
-         ".auto", savestate_name_auto_size);
+         ".auto", sizeof(savestate_name_auto));
 
    ret = content_save_state((const char*)savestate_name_auto, true, true);
    RARCH_LOG("%s \"%s\" %s.\n",
@@ -15086,7 +15076,6 @@ static bool command_event_save_auto_state(
          savestate_name_auto, ret ?
          "succeeded" : "failed");
 
-   free(savestate_name_auto);
    return true;
 }