summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 27c3c910b..4cb323eba 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -1674,8 +1674,9 @@ void GetGRFPresetList(GRFPresetList *list)
*/
GRFConfig *LoadGRFPresetFromConfig(const char *config_name)
{
- char *section = (char*)alloca(strlen(config_name) + 8);
- sprintf(section, "preset-%s", config_name);
+ size_t len = strlen(config_name) + 8;
+ char *section = (char*)alloca(len);
+ seprintf(section, section + len - 1, "preset-%s", config_name);
IniFile *ini = IniLoadConfig();
GRFConfig *config = GRFLoadConfig(ini, section, false);
@@ -1692,8 +1693,9 @@ GRFConfig *LoadGRFPresetFromConfig(const char *config_name)
*/
void SaveGRFPresetToConfig(const char *config_name, GRFConfig *config)
{
- char *section = (char*)alloca(strlen(config_name) + 8);
- sprintf(section, "preset-%s", config_name);
+ size_t len = strlen(config_name) + 8;
+ char *section = (char*)alloca(len);
+ seprintf(section, section + len - 1, "preset-%s", config_name);
IniFile *ini = IniLoadConfig();
GRFSaveConfig(ini, section, config);
@@ -1707,8 +1709,9 @@ void SaveGRFPresetToConfig(const char *config_name, GRFConfig *config)
*/
void DeleteGRFPresetFromConfig(const char *config_name)
{
- char *section = (char*)alloca(strlen(config_name) + 8);
- sprintf(section, "preset-%s", config_name);
+ size_t len = strlen(config_name) + 8;
+ char *section = (char*)alloca(len);
+ seprintf(section, section + len - 1, "preset-%s", config_name);
IniFile *ini = IniLoadConfig();
ini->RemoveGroup(section);