From 17f3421769aaba11f250c1322edf8b6fcce341a1 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 2 Dec 2017 01:17:49 -0500 Subject: [PATCH] Don't load plugin if slug already exists --- src/plugin.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/plugin.cpp b/src/plugin.cpp index ca873ed0..d63b962f 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -144,6 +144,16 @@ static int loadPlugin(std::string path) { plugin->handle = handle; initCallback(plugin); + // Reject plugin if slug already exists + for (Plugin *p : gPlugins) { + if (plugin->slug == p->slug) { + warn("Plugin \"%s\" is already loaded, not attempting to load it again"); + // TODO + // Fix memory leak with `plugin` here + return -1; + } + } + // Add plugin to list gPlugins.push_back(plugin); info("Loaded plugin %s", libraryFilename.c_str());