diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-19 14:38:27 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-19 14:38:27 +0100 |
commit | 7f903697ecf116edcfc7eca4315eaaed0626401c (patch) | |
tree | 320e56ef41acea77e300625f0f3023df5598a147 | |
parent | efe1aee0dfe0fe5f364357080bcfed4287cb7597 (diff) | |
download | abrt-7f903697ecf116edcfc7eca4315eaaed0626401c.tar.gz abrt-7f903697ecf116edcfc7eca4315eaaed0626401c.tar.xz abrt-7f903697ecf116edcfc7eca4315eaaed0626401c.zip |
fix small bug in plugin loading code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | lib/Utils/Plugin.h | 1 | ||||
-rw-r--r-- | src/Daemon/PluginManager.cpp | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/Utils/Plugin.h b/lib/Utils/Plugin.h index 9447f45..2d8bba3 100644 --- a/lib/Utils/Plugin.h +++ b/lib/Utils/Plugin.h @@ -84,6 +84,7 @@ typedef enum { ACTION, /**< An action plugin*/ REPORTER, /**< A reporter plugin*/ DATABASE /**< A database plugin*/ + MAX_PLUGIN_TYPE = DATABASE } plugin_type_t; /** diff --git a/src/Daemon/PluginManager.cpp b/src/Daemon/PluginManager.cpp index f8e8fed..2f4d875 100644 --- a/src/Daemon/PluginManager.cpp +++ b/src/Daemon/PluginManager.cpp @@ -166,9 +166,10 @@ void CPluginManager::LoadPlugin(const char *pName) { std::string libPath = ssprintf(PLUGINS_LIB_DIR"/"PLUGINS_LIB_PREFIX"%s."PLUGINS_LIB_EXTENSION, pName); abrtPlugin = new CABRTPlugin(libPath.c_str()); - if (abrtPlugin->GetMagicNumber() != PLUGINS_MAGIC_NUMBER || - (abrtPlugin->GetType() < ANALYZER && abrtPlugin->GetType() > DATABASE)) - { + if (abrtPlugin->GetMagicNumber() != PLUGINS_MAGIC_NUMBER + || abrtPlugin->GetType() < 0 + || abrtPlugin->GetType() > MAX_PLUGIN_TYPE + ) { throw CABRTException(EXCEP_PLUGIN, "CPluginManager::LoadPlugin(): non-compatible plugin"); } log("Plugin %s (%s) succesfully loaded", pName, abrtPlugin->GetVersion()); |