mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-24 15:24:30 +01:00
fix several safe_strncpy calls
This commit is contained in:
@@ -317,27 +317,19 @@ void scenario_begin()
|
|||||||
{
|
{
|
||||||
// Get filename
|
// Get filename
|
||||||
utf8 filename[MAX_PATH];
|
utf8 filename[MAX_PATH];
|
||||||
int len = strnlen(_scenarioFileName, MAX_PATH);
|
safe_strncpy(filename, _scenarioFileName, sizeof(filename));
|
||||||
safe_strncpy(filename, _scenarioFileName, len);
|
|
||||||
if (len == MAX_PATH)
|
|
||||||
{
|
|
||||||
filename[MAX_PATH - 1] = '\0';
|
|
||||||
log_warning("truncated string %s", filename);
|
|
||||||
}
|
|
||||||
path_remove_extension(filename);
|
path_remove_extension(filename);
|
||||||
|
|
||||||
rct_string_id localisedStringIds[3];
|
rct_string_id localisedStringIds[3];
|
||||||
if (language_get_localised_scenario_strings(filename, localisedStringIds)) {
|
if (language_get_localised_scenario_strings(filename, localisedStringIds)) {
|
||||||
if (localisedStringIds[0] != (rct_string_id)STR_NONE) {
|
if (localisedStringIds[0] != (rct_string_id)STR_NONE) {
|
||||||
safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_NAME, language_get_string(localisedStringIds[0]), 31);
|
safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_NAME, language_get_string(localisedStringIds[0]), 32);
|
||||||
((char*)RCT2_ADDRESS_SCENARIO_NAME)[31] = '\0';
|
|
||||||
}
|
}
|
||||||
if (localisedStringIds[1] != (rct_string_id)STR_NONE) {
|
if (localisedStringIds[1] != (rct_string_id)STR_NONE) {
|
||||||
park_set_name(language_get_string(localisedStringIds[1]));
|
park_set_name(language_get_string(localisedStringIds[1]));
|
||||||
}
|
}
|
||||||
if (localisedStringIds[2] != (rct_string_id)STR_NONE) {
|
if (localisedStringIds[2] != (rct_string_id)STR_NONE) {
|
||||||
safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, language_get_string(localisedStringIds[2]), 255);
|
safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, language_get_string(localisedStringIds[2]), 256);
|
||||||
((char*)RCT2_ADDRESS_SCENARIO_DETAILS)[255] = '\0';
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rct_stex_entry* stex = g_stexEntries[0];
|
rct_stex_entry* stex = g_stexEntries[0];
|
||||||
|
|||||||
@@ -642,15 +642,14 @@ static void window_loadsave_populate_list(int includeNewItem, bool browsable, co
|
|||||||
if (!topLevel){
|
if (!topLevel){
|
||||||
listItem = &_listItems[_listItemsCount];
|
listItem = &_listItems[_listItemsCount];
|
||||||
safe_strncpy(listItem->name, language_get_string(2718), sizeof(listItem->name));
|
safe_strncpy(listItem->name, language_get_string(2718), sizeof(listItem->name));
|
||||||
memset(listItem->path, '\0', MAX_PATH);
|
safe_strncpy(listItem->path, directory, sizeof(listItem->path));
|
||||||
safe_strncpy(listItem->path, directory, lastSlash + 1);
|
|
||||||
listItem->type = TYPE_UP;
|
listItem->type = TYPE_UP;
|
||||||
_listItemsCount++;
|
_listItemsCount++;
|
||||||
} else if (platform_get_drives() != 0 && directory[0] != '\0'){
|
} else if (platform_get_drives() != 0 && directory[0] != '\0'){
|
||||||
includeNewItem = false;
|
includeNewItem = false;
|
||||||
listItem = &_listItems[_listItemsCount];
|
listItem = &_listItems[_listItemsCount];
|
||||||
safe_strncpy(listItem->name, language_get_string(2718), sizeof(listItem->name));
|
safe_strncpy(listItem->name, language_get_string(2718), sizeof(listItem->name));
|
||||||
memset(listItem->path, '\0', MAX_PATH);
|
memset(listItem->path, '\0', sizeof(listItem->path));
|
||||||
listItem->type = TYPE_UP;
|
listItem->type = TYPE_UP;
|
||||||
_listItemsCount++;
|
_listItemsCount++;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user