aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2021-09-09 15:16:06 -0400
committerluigi1111 <luigi1111w@gmail.com>2021-09-09 15:16:06 -0400
commitacfe3f8ded838bd6ef31cbf203cc70a82e976843 (patch)
treeea300ecf9a7fe28fc24f87341899767cd4e4d699
parentMerge pull request #7823 (diff)
parentEasyLogging++: new anti-UB test and propagating exception (diff)
downloadmonero-acfe3f8ded838bd6ef31cbf203cc70a82e976843.tar.xz
Merge pull request #7828
b2c59af EasyLogging++: new anti-UB test and propagating exception (mj-xmr)
-rw-r--r--external/easylogging++/easylogging++.h1
-rw-r--r--tests/unit_tests/logging.cpp7
2 files changed, 8 insertions, 0 deletions
diff --git a/external/easylogging++/easylogging++.h b/external/easylogging++/easylogging++.h
index c4a88339f..b983a796c 100644
--- a/external/easylogging++/easylogging++.h
+++ b/external/easylogging++/easylogging++.h
@@ -2026,6 +2026,7 @@ class TypedConfigurations : public base::threading::ThreadSafe {
ELPP_INTERNAL_ERROR("Unable to get configuration [" << confName << "] for level ["
<< LevelHelper::convertToString(level) << "]"
<< std::endl << "Please ensure you have properly configured logger.", false);
+ throw; // The exception has to be rethrown, to abort a branch leading to UB.
}
}
return it->second;
diff --git a/tests/unit_tests/logging.cpp b/tests/unit_tests/logging.cpp
index f11b17412..b3ffb9aa6 100644
--- a/tests/unit_tests/logging.cpp
+++ b/tests/unit_tests/logging.cpp
@@ -208,3 +208,10 @@ TEST(logging, operator_equals_segfault)
el::Logger log2("id2", nullptr);
log2 = log1;
}
+
+TEST(logging, empty_configurations_throws)
+{
+ el::Logger log1("id1", nullptr);
+ const el::Configurations cfg;
+ EXPECT_ANY_THROW(log1.configure(cfg));
+}