summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2017-07-18 23:30:52 +0900
committerEvgeny Vereshchagin <evvers@ya.ru>2017-07-18 17:30:52 +0300
commit35aba85a73c5872f18400bcbff930c9822f53771 (patch)
tree0e1f26f9cb30fe6002bce4370dbc7857e5bf6c01
parent3536f49e8fa281539798a7bc5004d73302f39673 (diff)
downloadsystemd-35aba85a73c5872f18400bcbff930c9822f53771.tar.gz
core/manager: fix memory leak (#6400)
This fixes the memory leak introduced by 3536f49e8fa281539798a7bc5004d73302f39673, which forgot to free the prefixes in the manager. Fixes #6398.
-rw-r--r--src/core/manager.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index a737ab0754..6389324391 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1112,6 +1112,7 @@ static void manager_clear_jobs_and_units(Manager *m) {
Manager* manager_free(Manager *m) {
UnitType c;
int i;
+ ExecDirectoryType dt;
if (!m)
return NULL;
@@ -1184,6 +1185,9 @@ Manager* manager_free(Manager *m) {
hashmap_free(m->uid_refs);
hashmap_free(m->gid_refs);
+ for (dt = 0; dt < _EXEC_DIRECTORY_MAX; dt++)
+ m->prefix[dt] = mfree(m->prefix[dt]);
+
return mfree(m);
}