From ec73ad11456bc1e98db2b65b6559d1a5dd626bfc Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 1 May 2012 15:33:42 +0000 Subject: (svn r24192) -Fix [FS#5153-ish]: Also use default value when reading an invalid integer setting value. --- src/settings.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/settings.cpp') diff --git a/src/settings.cpp b/src/settings.cpp index 2b109e51e..13ae8141a 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -347,6 +347,12 @@ static const void *StringToVal(const SettingDescBase *desc, const char *orig_str case SDT_NUMX: { char *end; size_t val = strtoul(str, &end, 0); + if (end == str) { + SetDParamStr(0, str); + SetDParamStr(1, desc->name); + ShowErrorMessage(STR_CONFIG_ERROR, STR_CONFIG_ERROR_INVALID_VALUE, WL_CRITICAL); + return desc->def; + } if (*end != '\0') { SetDParamStr(0, desc->name); ShowErrorMessage(STR_CONFIG_ERROR, STR_CONFIG_ERROR_TRAILING_CHARACTERS, WL_CRITICAL); -- cgit v1.2.3-54-g00ecf