From a0909a242d60aff0a0484b81e04a480d6afc6266 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Mon, 2 Nov 2015 21:23:01 +0000 Subject: [PATCH] fix several safe_strncpy calls --- src/scenario.c | 14 +++----------- src/windows/loadsave.c | 5 ++--- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/scenario.c b/src/scenario.c index 76b6b6768e..d250db71cd 100644 --- a/src/scenario.c +++ b/src/scenario.c @@ -317,27 +317,19 @@ void scenario_begin() { // Get filename utf8 filename[MAX_PATH]; - int len = strnlen(_scenarioFileName, MAX_PATH); - safe_strncpy(filename, _scenarioFileName, len); - if (len == MAX_PATH) - { - filename[MAX_PATH - 1] = '\0'; - log_warning("truncated string %s", filename); - } + safe_strncpy(filename, _scenarioFileName, sizeof(filename)); path_remove_extension(filename); rct_string_id localisedStringIds[3]; if (language_get_localised_scenario_strings(filename, localisedStringIds)) { if (localisedStringIds[0] != (rct_string_id)STR_NONE) { - safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_NAME, language_get_string(localisedStringIds[0]), 31); - ((char*)RCT2_ADDRESS_SCENARIO_NAME)[31] = '\0'; + safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_NAME, language_get_string(localisedStringIds[0]), 32); } if (localisedStringIds[1] != (rct_string_id)STR_NONE) { park_set_name(language_get_string(localisedStringIds[1])); } if (localisedStringIds[2] != (rct_string_id)STR_NONE) { - safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, language_get_string(localisedStringIds[2]), 255); - ((char*)RCT2_ADDRESS_SCENARIO_DETAILS)[255] = '\0'; + safe_strncpy((char*)RCT2_ADDRESS_SCENARIO_DETAILS, language_get_string(localisedStringIds[2]), 256); } } else { rct_stex_entry* stex = g_stexEntries[0]; diff --git a/src/windows/loadsave.c b/src/windows/loadsave.c index 41d8e81932..78bbcc91fc 100644 --- a/src/windows/loadsave.c +++ b/src/windows/loadsave.c @@ -642,15 +642,14 @@ static void window_loadsave_populate_list(int includeNewItem, bool browsable, co if (!topLevel){ listItem = &_listItems[_listItemsCount]; safe_strncpy(listItem->name, language_get_string(2718), sizeof(listItem->name)); - memset(listItem->path, '\0', MAX_PATH); - safe_strncpy(listItem->path, directory, lastSlash + 1); + safe_strncpy(listItem->path, directory, sizeof(listItem->path)); listItem->type = TYPE_UP; _listItemsCount++; } else if (platform_get_drives() != 0 && directory[0] != '\0'){ includeNewItem = false; listItem = &_listItems[_listItemsCount]; 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; _listItemsCount++; }