* Don't do NULL termination on string if we pass it to strlcpy

* Cleanups in connmanctl.c - abuse of strlcat, strlcpy should
precede it first and/or other more optimal ways of setting the path
This commit is contained in:
libretroadmin 2022-07-21 01:46:33 +02:00
parent ee9cb6cb1b
commit 2cf6f6ce8f
2 changed files with 14 additions and 28 deletions

View File

@ -332,14 +332,14 @@ static bool connmanctl_connect_ssid(
bool widgets_active = bool widgets_active =
connman->connmanctl_widgets_supported; connman->connmanctl_widgets_supported;
#endif #endif
strlcat(netid, netinfo->netid, sizeof(netid)); strlcpy(netid, netinfo->netid, sizeof(netid));
strlcat(settings_dir, LAKKA_CONNMAN_DIR, sizeof(settings_dir)); fill_pathname_join(settings_dir, LAKKA_CONNMAN_DIR,
strlcat(settings_dir, netid, sizeof(settings_dir)); netid, sizeof(settings_dir));
path_mkdir(settings_dir); path_mkdir(settings_dir);
strlcat(settings_path, settings_dir, sizeof(settings_path)); fill_pathname_join(settings_path, settings_dir, "settings",
strlcat(settings_path, "/settings", sizeof(settings_path)); sizeof(settings_path));
if (!netinfo->saved_password) if (!netinfo->saved_password)
{ {

View File

@ -194,14 +194,11 @@ static void task_pl_manager_reset_cores_handler(retro_task_t *task)
{ {
struct playlist_entry update_entry = {0}; struct playlist_entry update_entry = {0};
char task_title[PATH_MAX_LENGTH]; char task_title[PATH_MAX_LENGTH];
task_title[0] = '\0';
/* Update progress display */ /* Update progress display */
task_free_title(task); task_free_title(task);
strlcpy( strlcpy(
task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_RESETTING_CORES), task_title,
msg_hash_to_str(MSG_PLAYLIST_MANAGER_RESETTING_CORES),
sizeof(task_title)); sizeof(task_title));
if (!string_is_empty(entry->label)) if (!string_is_empty(entry->label))
@ -238,15 +235,10 @@ static void task_pl_manager_reset_cores_handler(retro_task_t *task)
case PL_MANAGER_END: case PL_MANAGER_END:
{ {
char task_title[PATH_MAX_LENGTH]; char task_title[PATH_MAX_LENGTH];
task_title[0] = '\0';
/* Save playlist changes to disk */ /* Save playlist changes to disk */
playlist_write_file(pl_manager->playlist); playlist_write_file(pl_manager->playlist);
/* Update progress display */ /* Update progress display */
task_free_title(task); task_free_title(task);
strlcpy( strlcpy(
task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_CORES_RESET), task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_CORES_RESET),
sizeof(task_title)); sizeof(task_title));
@ -279,8 +271,7 @@ static bool task_pl_manager_reset_cores_finder(
if (task->handler != task_pl_manager_reset_cores_handler) if (task->handler != task_pl_manager_reset_cores_handler)
return false; return false;
pl_manager = (pl_manager_handle_t*)task->state; if (!(pl_manager = (pl_manager_handle_t*)task->state))
if (!pl_manager)
return false; return false;
return string_is_equal((const char*)user_data, return string_is_equal((const char*)user_data,
@ -297,7 +288,6 @@ bool task_push_pl_manager_reset_cores(const playlist_config_t *playlist_config)
calloc(1, sizeof(pl_manager_handle_t)); calloc(1, sizeof(pl_manager_handle_t));
playlist_name[0] = '\0'; playlist_name[0] = '\0';
task_title[0] = '\0';
/* Sanity check */ /* Sanity check */
if (!playlist_config || !task || !pl_manager) if (!playlist_config || !task || !pl_manager)
@ -335,7 +325,8 @@ bool task_push_pl_manager_reset_cores(const playlist_config_t *playlist_config)
/* Configure task */ /* Configure task */
strlcpy( strlcpy(
task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_RESETTING_CORES), task_title,
msg_hash_to_str(MSG_PLAYLIST_MANAGER_RESETTING_CORES),
sizeof(task_title)); sizeof(task_title));
strlcat(task_title, playlist_name, sizeof(task_title)); strlcat(task_title, playlist_name, sizeof(task_title));
@ -405,13 +396,13 @@ static void pl_manager_validate_core_association(
char core_display_name[PATH_MAX_LENGTH]; char core_display_name[PATH_MAX_LENGTH];
core_info_t *core_info = NULL; core_info_t *core_info = NULL;
core_display_name[0] = '\0';
/* Search core info */ /* Search core info */
if (core_info_find(core_path, &core_info) && if (core_info_find(core_path, &core_info) &&
!string_is_empty(core_info->display_name)) !string_is_empty(core_info->display_name))
strlcpy(core_display_name, core_info->display_name, strlcpy(core_display_name, core_info->display_name,
sizeof(core_display_name)); sizeof(core_display_name));
else
core_display_name[0] = '\0';
/* If core_display_name string is empty, it means the /* If core_display_name string is empty, it means the
* core wasn't found -> reset association */ * core wasn't found -> reset association */
@ -668,15 +659,10 @@ static void task_pl_manager_clean_playlist_handler(retro_task_t *task)
case PL_MANAGER_END: case PL_MANAGER_END:
{ {
char task_title[PATH_MAX_LENGTH]; char task_title[PATH_MAX_LENGTH];
task_title[0] = '\0';
/* Save playlist changes to disk */ /* Save playlist changes to disk */
playlist_write_file(pl_manager->playlist); playlist_write_file(pl_manager->playlist);
/* Update progress display */ /* Update progress display */
task_free_title(task); task_free_title(task);
strlcpy( strlcpy(
task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_PLAYLIST_CLEANED), task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_PLAYLIST_CLEANED),
sizeof(task_title)); sizeof(task_title));
@ -728,7 +714,6 @@ bool task_push_pl_manager_clean_playlist(
calloc(1, sizeof(pl_manager_handle_t)); calloc(1, sizeof(pl_manager_handle_t));
playlist_name[0] = '\0'; playlist_name[0] = '\0';
task_title[0] = '\0';
/* Sanity check */ /* Sanity check */
if (!playlist_config || !task || !pl_manager) if (!playlist_config || !task || !pl_manager)
@ -769,7 +754,8 @@ bool task_push_pl_manager_clean_playlist(
/* Configure task */ /* Configure task */
strlcpy( strlcpy(
task_title, msg_hash_to_str(MSG_PLAYLIST_MANAGER_CLEANING_PLAYLIST), task_title,
msg_hash_to_str(MSG_PLAYLIST_MANAGER_CLEANING_PLAYLIST),
sizeof(task_title)); sizeof(task_title));
strlcat(task_title, playlist_name, sizeof(task_title)); strlcat(task_title, playlist_name, sizeof(task_title));