summaryrefslogtreecommitdiffstats
path: root/src/daemon/Settings.cpp
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2010-10-06 12:46:12 +0200
committerNikola Pajkovsky <npajkovs@redhat.com>2010-10-06 12:46:12 +0200
commit35b4fbb2a01107854fdfcee158f642f667f58f0d (patch)
treed98294368c154d505dd33069eae5c14a1dbe9104 /src/daemon/Settings.cpp
parent350eacf7f1948d52d6c71789845b0b640bb048ac (diff)
downloadabrt-35b4fbb2a01107854fdfcee158f642f667f58f0d.tar.gz
abrt-35b4fbb2a01107854fdfcee158f642f667f58f0d.tar.xz
abrt-35b4fbb2a01107854fdfcee158f642f667f58f0d.zip
Settings.cpp: avoid double free corruption
I meant, that settings_free() should not only do free(g_settings_*); but also should do g_settings_* = NULL; Otherwise calling settings_free() twice will cause double-free and likely segfault. Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Diffstat (limited to 'src/daemon/Settings.cpp')
-rw-r--r--src/daemon/Settings.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/daemon/Settings.cpp b/src/daemon/Settings.cpp
index f7b7d2ef..a85bb419 100644
--- a/src/daemon/Settings.cpp
+++ b/src/daemon/Settings.cpp
@@ -571,18 +571,23 @@ void settings_free()
free((char*)li->data);
g_list_free(g_settings_setOpenGPGPublicKeys);
+ g_settings_setOpenGPGPublicKeys = NULL;
for (GList *li = g_settings_setBlackListedPkgs; li != NULL; li = g_list_next(li))
free((char*)li->data);
g_list_free(g_settings_setBlackListedPkgs);
+ g_settings_setBlackListedPkgs = NULL;
for (GList *li = g_settings_setBlackListedPaths; li != NULL; li = g_list_next(li))
free((char*)li->data);
g_list_free(g_settings_setBlackListedPaths);
+ g_settings_setBlackListedPaths = NULL;
free(g_settings_sDatabase);
+ g_settings_sDatabase = NULL;
free(g_settings_sWatchCrashdumpArchiveDir);
+ g_settings_sWatchCrashdumpArchiveDir = NULL;
}