diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index d02499cb78..d902b1ac90 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -8384,10 +8384,11 @@ unsigned menu_displaylist_build_list( for (i = 0; i < num_cheats; i++) { + size_t new_len = _len; const char *cheat_description = cheat_manager_get_desc(i); - snprintf(cheat_label + _len, sizeof(cheat_label) - _len, " #%u: ", i); + new_len += snprintf(cheat_label + _len, sizeof(cheat_label) - _len, " #%u: ", i); if (!string_is_empty(cheat_description)) - strlcat(cheat_label, cheat_description, sizeof(cheat_label)); + strlcpy(cheat_label + new_len, cheat_description, sizeof(cheat_label) - new_len); /* If a search is active, skip non-matching * entries */ diff --git a/network/netplay/netplay_frontend.c b/network/netplay/netplay_frontend.c index 2ba5202abb..fbceaf12fe 100644 --- a/network/netplay/netplay_frontend.c +++ b/network/netplay/netplay_frontend.c @@ -8330,10 +8330,12 @@ static void netplay_announce(netplay_t *netplay) buf[0] = '\0'; for (;;) { + /* TODO/FIXME - is last param OK here */ strlcat(buf, path_basename(subsystem->elems[i].data), sizeof(host_room->gamename)); if (++i >= subsystem->size) break; + /* TODO/FIXME - is last param OK here */ strlcat(buf, "|", sizeof(host_room->gamename)); } diff --git a/tasks/task_database.c b/tasks/task_database.c index 6080af7e2d..835451bc20 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -790,9 +790,7 @@ static int database_info_list_iterate_found_match( entry_path_str[0] = '\0'; fill_pathname(db_playlist_base_str, - path_basename_nocompression(db_path), "", str_len); - - strlcat(db_playlist_base_str, ".lpl", sizeof(db_playlist_base_str)); + path_basename_nocompression(db_path), ".lpl", str_len); if (!string_is_empty(_db->playlist_directory)) fill_pathname_join_special(db_playlist_path, _db->playlist_directory,