Changeset - r21121:652ccbb04bc8
[Not reviewed]
master
0 2 0
frosch - 11 years ago 2014-01-02 17:55:57
frosch@openttd.org
(svn r26206) -Fix [FS#5829]: Run everything from ini, obg, obs, obs, ... files through str_validate.
2 files changed with 14 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/ini_load.cpp
Show inline comments
 
@@ -26,6 +26,8 @@ IniItem::IniItem(IniGroup *parent, const
 
	if (len == 0) len = strlen(name);
 

	
 
	this->name = strndup(name, len);
 
	if (this->name != NULL) str_validate(this->name, this->name + len);
 

	
 
	*parent->last_item = this;
 
	parent->last_item = &this->next;
 
}
 
@@ -61,6 +63,8 @@ IniGroup::IniGroup(IniLoadFile *parent, 
 
	if (len == 0) len = strlen(name);
 

	
 
	this->name = strndup(name, len);
 
	if (this->name != NULL) str_validate(this->name, this->name + len);
 

	
 
	this->last_item = &this->item;
 
	*parent->last_group = this;
 
	parent->last_group = &this->next;
 
@@ -305,6 +309,7 @@ void IniLoadFile::LoadFromDisk(const cha
 

	
 
			/* If the value was not quoted and empty, it must be NULL */
 
			item->value = (!quoted && e == t) ? NULL : strndup(t, e - t);
 
			if (item->value != NULL) str_validate(item->value, item->value + strlen(item->value));
 
		} else {
 
			/* it's an orphan item */
 
			this->ReportFileError("ini: '", buffer, "' outside of group");
src/table/gameopt_settings.ini
Show inline comments
 
@@ -29,15 +29,15 @@ static const char *_settings_profiles = 
 
static const char *_news_display = "off|summarized|full";
 

	
 
static const SettingDesc _gameopt_settings[] = {
 
	/* In version 4 a new difficulty setting has been added to the difficulty settings,
 
	 * town attitude towards demolishing. Needs special handling because some dimwit thought
 
	 * it funny to have the GameDifficulty struct be an array while it is a struct of
 
	 * same-sized members
 
	 * XXX - To save file-space and since values are never bigger than about 10? only
 
	 * save the first 16 bits in the savegame. Question is why the values are still int32
 
	 * and why not byte for example?
 
	 * 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlArray() hack
 
	 * for savegames version 0 - though it is an array, it has to go through the byteswap process */
 
/* In version 4 a new difficulty setting has been added to the difficulty settings,
 
 * town attitude towards demolishing. Needs special handling because some dimwit thought
 
 * it funny to have the GameDifficulty struct be an array while it is a struct of
 
 * same-sized members
 
 * XXX - To save file-space and since values are never bigger than about 10? only
 
 * save the first 16 bits in the savegame. Question is why the values are still int32
 
 * and why not byte for example?
 
 * 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlArray() hack
 
 * for savegames version 0 - though it is an array, it has to go through the byteswap process */
 
[post-amble]
 
};
 
[templates]
0 comments (0 inline, 0 general)