diff --git a/modules/commands/os_set.cpp b/modules/commands/os_set.cpp index 9ecae3105..a8a7e2e62 100644 --- a/modules/commands/os_set.cpp +++ b/modules/commands/os_set.cpp @@ -114,7 +114,7 @@ class CommandOSSet : public Command Log(LOG_ADMIN, source, this) << "DEBUG ON"; source.Reply(_("Services are now in debug mode.")); } - else if (setting.equals_ci("OFF") || (setting[0] == '0' && setting.is_number_only() && !convertTo(setting))) + else if (setting.equals_ci("OFF") || setting == "0") { Log(LOG_ADMIN, source, this) << "DEBUG OFF"; debug = 0; diff --git a/src/config.cpp b/src/config.cpp index 0c5d1c2af..2c0e264f2 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -1941,7 +1941,16 @@ int ValueItem::GetInteger() const { if (v.empty() || !v.is_number_only()) return 0; - return convertTo(v); + try + { + return convertTo(v); + } + catch (const ConvertException &) + { + Log() << "Unable to convert configuration value " << this->v << " to an integer. Value too large?"; + } + + return 0; } const char *ValueItem::GetString() const