diff --git a/apps/dsm/DSMChartReader.cpp b/apps/dsm/DSMChartReader.cpp index 4dd0c253..8c49eb80 100644 --- a/apps/dsm/DSMChartReader.cpp +++ b/apps/dsm/DSMChartReader.cpp @@ -261,13 +261,14 @@ bool DSMChartReader::importModule(const string& mod_cmd, const string& mod_path) SCFactoryCreate fc = NULL; if ((fc = (SCFactoryCreate)dlsym(h_dl,SC_FACTORY_EXPORT_STR)) == NULL) { ERROR("invalid SC module '%s' (SC_EXPORT missing?)\n", fname.c_str()); + dlclose(h_dl); return false; } DSMModule* mod = (DSMModule*)fc(); if (!mod) { - ERROR("module '%s' did not return functions.\n", - fname.c_str()); + ERROR("module '%s' did not return functions.\n", fname.c_str()); + dlclose(h_dl); return false; }