diff --git a/retroarch.c b/retroarch.c index 68deb94510..bcb92f358b 100644 --- a/retroarch.c +++ b/retroarch.c @@ -5564,13 +5564,14 @@ static bool retroarch_parse_input_and_config( if (first_run) { + size_t _len = 0; /* Copy the args into a buffer so launch arguments can be reused */ for (i = 0; i < (unsigned)argc; i++) { - strlcat(p_rarch->launch_arguments, - argv[i], sizeof(p_rarch->launch_arguments)); - strlcat(p_rarch->launch_arguments, " ", - sizeof(p_rarch->launch_arguments)); + _len += strlcpy(p_rarch->launch_arguments + _len, + argv[i], sizeof(p_rarch->launch_arguments) - _len); + _len += strlcpy(p_rarch->launch_arguments + _len, + " ", sizeof(p_rarch->launch_arguments) - _len); } string_trim_whitespace_left(p_rarch->launch_arguments); string_trim_whitespace_right(p_rarch->launch_arguments); diff --git a/runtime_file.c b/runtime_file.c index 67b63e15c3..9c23586447 100644 --- a/runtime_file.c +++ b/runtime_file.c @@ -572,7 +572,7 @@ static void runtime_log_get_last_played_time(runtime_log_t *runtime_log, static bool runtime_last_played_human(runtime_log_t *runtime_log, char *str, size_t len) { - size_t _len; + size_t _len, _len2; struct tm time_info; time_t last_played; time_t current; @@ -611,17 +611,17 @@ static bool runtime_last_played_human(runtime_log_t *runtime_log, delta /= periods[i]; /* Generate string */ - _len = snprintf(tmp, sizeof(tmp), "%u ", (int)delta); - if (delta == 1) - strlcpy(tmp + _len, msg_hash_to_str((enum msg_hash_enums)units[i][0]), - sizeof(tmp) - _len); - else - strlcpy(tmp + _len, msg_hash_to_str((enum msg_hash_enums)units[i][1]), - sizeof(tmp) - _len); + _len = snprintf(tmp, sizeof(tmp), "%u ", (int)delta); + _len += strlcpy (tmp + _len, + msg_hash_to_str((enum msg_hash_enums)units[i][(delta == 1) ? 0 : 1]), + sizeof(tmp) - _len); - strlcat(str, tmp, len); - strlcat(str, " ", len); - strlcat(str, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TIME_UNIT_AGO), len); + _len2 = strlcat(str, tmp, len); + str[ _len2] = ' '; + str[++_len2] = '\0'; + _len2 += strlcpy(str + _len2, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TIME_UNIT_AGO), + len - _len2); return true; }