]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Treat an empty bool/duration/int/uint config field as undefined.
authorSadie Powell <sadie@witchery.services>
Sat, 13 Mar 2021 02:33:05 +0000 (02:33 +0000)
committerSadie Powell <sadie@witchery.services>
Sun, 14 Mar 2021 00:23:56 +0000 (00:23 +0000)
src/configparser.cpp

index b68c52cbba60703aab3d9d172de346cf7bf03849..556442627570796b2e293ce2cd647ad714031884 100644 (file)
@@ -628,7 +628,7 @@ namespace
 long ConfigTag::getInt(const std::string &key, long def, long min, long max)
 {
        std::string result;
-       if(!readString(key, result))
+       if(!readString(key, result) || result.empty())
                return def;
 
        const char* res_cstr = result.c_str();
@@ -645,7 +645,7 @@ long ConfigTag::getInt(const std::string &key, long def, long min, long max)
 unsigned long ConfigTag::getUInt(const std::string& key, unsigned long def, unsigned long min, unsigned long max)
 {
        std::string result;
-       if (!readString(key, result))
+       if (!readString(key, result) || result.empty())
                return def;
 
        const char* res_cstr = result.c_str();
@@ -662,7 +662,7 @@ unsigned long ConfigTag::getUInt(const std::string& key, unsigned long def, unsi
 unsigned long ConfigTag::getDuration(const std::string& key, unsigned long def, unsigned long min, unsigned long max)
 {
        std::string duration;
-       if (!readString(key, duration))
+       if (!readString(key, duration) || duration.empty())
                return def;
 
        unsigned long ret;
@@ -691,7 +691,7 @@ double ConfigTag::getFloat(const std::string& key, double def, double min, doubl
 bool ConfigTag::getBool(const std::string &key, bool def)
 {
        std::string result;
-       if(!readString(key, result))
+       if(!readString(key, result) || result.empty())
                return def;
 
        if (stdalgo::string::equalsci(result, "yes") || stdalgo::string::equalsci(result, "true") || stdalgo::string::equalsci(result, "on") || result == "1")