summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-05-10 19:49:07 +0300
committerAndrei Karas <akaras@inbox.ru>2018-05-10 19:49:07 +0300
commit4dda0a845c58a428ca4e24f8ac012933bfc12df1 (patch)
tree787ad8a9776049b53bbd1fbb59974d12b9e2f0e5
parentd4becd02df95dafcc0078ed2f0b924f29023feeb (diff)
downloadplugin-4dda0a845c58a428ca4e24f8ac012933bfc12df1.tar.gz
plugin-4dda0a845c58a428ca4e24f8ac012933bfc12df1.tar.bz2
plugin-4dda0a845c58a428ca4e24f8ac012933bfc12df1.tar.xz
plugin-4dda0a845c58a428ca4e24f8ac012933bfc12df1.zip
Fix memory leak in configuration parameters if same config split into more than one file.s20180518
-rw-r--r--src/ecommon/config.c5
-rw-r--r--src/elogin/config.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/src/ecommon/config.c b/src/ecommon/config.c
index 6bc7205..677e408 100644
--- a/src/ecommon/config.c
+++ b/src/ecommon/config.c
@@ -23,6 +23,11 @@ int default_y = 0;
void config_default_map(const char *key __attribute__ ((unused)),
const char *val)
{
+ if (mapindex->default_map != NULL &&
+ strcmp(mapindex->default_map, MAP_DEFAULT) == 0)
+ {
+ aFree(mapindex->default_map);
+ }
mapindex->default_map = aStrdup(val);
}
diff --git a/src/elogin/config.c b/src/elogin/config.c
index 18f8275..8497a7e 100644
--- a/src/elogin/config.c
+++ b/src/elogin/config.c
@@ -20,11 +20,13 @@ char *update_server = NULL;
void config_update_server(const char *key __attribute__ ((unused)),
const char *val)
{
+ if (update_server != NULL)
+ aFree(update_server);
update_server = aStrdup(val);
}
void config_final(void)
{
- if (update_server)
+ if (update_server != NULL)
aFree(update_server);
}