diff options
author | Jan <sentrycraft123@gmail.com> | 2024-05-05 18:00:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-05 18:00:04 +0200 |
commit | ab653555f6aa0ec57e1b23a590fb3061929fdc30 (patch) | |
tree | f778b5995bc87f74b770f17eabe5dfc290253eec | |
parent | 9a64c1885c07a933563b5d296d848af7ebb0a02d (diff) | |
download | NorthstarLauncher-ab653555f6aa0ec57e1b23a590fb3061929fdc30.tar.gz NorthstarLauncher-ab653555f6aa0ec57e1b23a590fb3061929fdc30.zip |
Fix plugin with NULL strings causing UB (#695)
Instance string members only after checking for null pointers to prevent UB
-rw-r--r-- | primedev/plugins/plugins.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/primedev/plugins/plugins.cpp b/primedev/plugins/plugins.cpp index eddaa8ac..ae6fd0cb 100644 --- a/primedev/plugins/plugins.cpp +++ b/primedev/plugins/plugins.cpp @@ -69,10 +69,6 @@ Plugin::Plugin(std::string path) : m_location(path) m_runOnServer = context & PluginContext::DEDICATED; m_runOnClient = context & PluginContext::CLIENT; - m_name = std::string(name); - m_logName = std::string(logName); - m_dependencyName = std::string(dependencyName); - if (!name) { NS::log::PLUGINSYS->error("Could not load name of plugin at '{}'", path); @@ -91,6 +87,10 @@ Plugin::Plugin(std::string path) : m_location(path) return; } + m_name = std::string(name); + m_logName = std::string(logName); + m_dependencyName = std::string(dependencyName); + if (!isValidSquirrelIdentifier(m_dependencyName)) { NS::log::PLUGINSYS->error("Dependency name \"{}\" of plugin {} is not valid", dependencyName, name); |