diff options
author | peter1138 <peter1138@openttd.org> | 2006-01-31 12:08:49 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-01-31 12:08:49 +0000 |
commit | 9fd6b1009e148ae5cd110ee3682650e45c0a7b6c (patch) | |
tree | fb209c59882db9fea045debd6dbd9b5ce7a9f708 /unix.c | |
parent | 822afdcecd8b91236daae33ae5ee6504ccc09882 (diff) | |
download | openttd-9fd6b1009e148ae5cd110ee3682650e45c0a7b6c.tar.xz |
(svn r3496) - Validate filename titles before they get displayed. This avoids crashes with UTF-8 encoded or bad filenames by replacing undisplayable characters with a '?'
Diffstat (limited to 'unix.c')
-rw-r--r-- | unix.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -121,6 +121,7 @@ FiosItem *FiosGetSavegameList(int *num, int mode) ttd_strlcpy(fios->name, dirent->d_name, lengthof(fios->name)); snprintf(fios->title, lengthof(fios->title), "%s/ (Directory)", dirent->d_name); + str_validate(fios->title); } } closedir(dir); @@ -163,6 +164,7 @@ FiosItem *FiosGetSavegameList(int *num, int mode) *t = '\0'; // strip extension ttd_strlcpy(fios->title, dirent->d_name, lengthof(fios->title)); + str_validate(fios->title); } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) { if (strcasecmp(t, ".ss1") == 0 || strcasecmp(t, ".sv1") == 0 || @@ -222,6 +224,7 @@ FiosItem *FiosGetScenarioList(int *num, int mode) fios->mtime = 0; ttd_strlcpy(fios->name, dirent->d_name, lengthof(fios->name)); snprintf(fios->title, lengthof(fios->title), "%s/ (Directory)", dirent->d_name); + str_validate(fios->title); } } closedir(dir); @@ -262,6 +265,7 @@ FiosItem *FiosGetScenarioList(int *num, int mode) *t = '\0'; // strip extension ttd_strlcpy(fios->title, dirent->d_name, lengthof(fios->title)); + str_validate(fios->title); } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO || mode == SLD_NEW_GAME) { if (strcasecmp(t, ".sv0") == 0 || |