Fix YangSchema::enableFeature segfault on invalid modules
Now throws an exception on invalid modules.
Change-Id: I494813fa5bc3f8357d98e731f7b2748e2df3ee90
diff --git a/src/yang_schema.cpp b/src/yang_schema.cpp
index bbfce7c..2b69dc7 100644
--- a/src/yang_schema.cpp
+++ b/src/yang_schema.cpp
@@ -375,7 +375,12 @@
void YangSchema::enableFeature(const std::string& moduleName, const std::string& featureName)
{
- m_context->get_module(moduleName.c_str())->feature_enable(featureName.c_str());
+ auto module = getYangModule(moduleName);
+ if (!module) {
+ using namespace std::string_literals;
+ throw std::runtime_error("Module \""s + moduleName + "\" doesn't exist.");
+ }
+ module->feature_enable(featureName.c_str());
}
void YangSchema::registerModuleCallback(const std::function<std::string(const char*, const char*, const char*, const char*)>& clb)
@@ -406,7 +411,7 @@
std::shared_ptr<libyang::Module> YangSchema::getYangModule(const std::string& name)
{
- return m_context->get_module(name.c_str(), nullptr, 0);
+ return m_context->get_module(name.c_str());
}
namespace {