Signed-off-by: Nikola Pajkovsky <npajkovs(a)redhat.com>
---
src/daemon/Daemon.cpp | 1 +
src/daemon/Settings.cpp | 13 +++++++++++--
src/daemon/Settings.h | 5 ++++-
src/daemon/abrt-action-save-package-data.cpp | 7 +++----
4 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index 8ab9991..4cecae1 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -1114,6 +1114,7 @@ int main(int argc, char** argv)
if (pMainloop)
g_main_loop_unref(pMainloop);
+ settings_free();
/* Exiting */
if (s_sig_caught && s_sig_caught != SIGALRM && s_sig_caught != SIGCHLD)
{
diff --git a/src/daemon/Settings.cpp b/src/daemon/Settings.cpp
index a77e482..a6d59f5 100644
--- a/src/daemon/Settings.cpp
+++ b/src/daemon/Settings.cpp
@@ -51,7 +51,7 @@ static map_string_t s_mapSectionCron;
/* one line: "OpenGPGCheck = value" */
bool g_settings_bOpenGPGCheck = false;
/* one line: "OpenGPGPublicKeys = value1,value2" */
-set_string_t g_settings_setOpenGPGPublicKeys;
+GList *g_settings_setOpenGPGPublicKeys = NULL;
set_string_t g_settings_setBlackListedPkgs;
set_string_t g_settings_setBlackListedPaths;
std::string g_settings_sDatabase;
@@ -348,7 +348,7 @@ static void LoadGPGKeys()
if (line[0] == '/') // probably the begining of path, so let's handle it as a key
{
strchrnul(line, '\n')[0] = '\0';
- g_settings_setOpenGPGPublicKeys.insert(line);
+ g_settings_setOpenGPGPublicKeys = g_list_append(g_settings_setOpenGPGPublicKeys, xstrdup(line));
}
}
fclose(fp);
@@ -559,3 +559,12 @@ void SetSettings(const map_abrt_settings_t& pSettings, const char *dbus_sender)
ParseCron();
}
}
+
+void settings_free()
+{
+ for (GList *li = g_settings_setOpenGPGPublicKeys; li != NULL; li = g_list_next(li))
+ free((char*)li->data);
+
+ g_list_free(g_settings_setOpenGPGPublicKeys);
+
+}
diff --git a/src/daemon/Settings.h b/src/daemon/Settings.h
index 3103dbd..2a92020 100644
--- a/src/daemon/Settings.h
+++ b/src/daemon/Settings.h
@@ -20,12 +20,13 @@
#define SETTINGS_H_
#include "abrt_types.h"
+#include <glib.h>
typedef map_vector_pair_string_string_t map_analyzer_actions_and_reporters_t;
typedef map_vector_pair_string_string_t map_cron_t;
typedef map_map_string_t map_abrt_settings_t;
-extern set_string_t g_settings_setOpenGPGPublicKeys;
+extern GList *g_settings_setOpenGPGPublicKeys;
extern set_string_t g_settings_setBlackListedPkgs;
extern set_string_t g_settings_setBlackListedPaths;
extern unsigned int g_settings_nMaxCrashReportsSize;
@@ -42,4 +43,6 @@ void SaveSettings();
void SetSettings(const map_abrt_settings_t& pSettings, const char * dbus_sender);
map_abrt_settings_t GetSettings();
+void settings_free();
+
#endif
diff --git a/src/daemon/abrt-action-save-package-data.cpp b/src/daemon/abrt-action-save-package-data.cpp
index bd18bc8..039fa24 100644
--- a/src/daemon/abrt-action-save-package-data.cpp
+++ b/src/daemon/abrt-action-save-package-data.cpp
@@ -320,11 +320,10 @@ int main(int argc, char **argv)
VERB1 log("Initializing rpm library");
rpm_init();
- set_string_t::iterator it_k = g_settings_setOpenGPGPublicKeys.begin();
- for (; it_k != g_settings_setOpenGPGPublicKeys.end(); it_k++)
+ for (GList *li = g_settings_setOpenGPGPublicKeys; li != NULL; li = g_list_next(li))
{
- VERB1 log("Loading GPG key '%s'", it_k->c_str());
- rpm_load_gpgkey(it_k->c_str());
+ VERB1 log("Loading GPG key '%s'", (char*)li->data);
+ rpm_load_gpgkey((char*)li->data);
}
return SavePackageDescriptionToDebugDump(dump_dir_name);
--
1.7.1