]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/manager: fix memory leak (#6400)
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 18 Jul 2017 14:30:52 +0000 (23:30 +0900)
committerEvgeny Vereshchagin <evvers@ya.ru>
Tue, 18 Jul 2017 14:30:52 +0000 (17:30 +0300)
This fixes the memory leak introduced by 3536f49e8fa281539798a7bc5004d73302f39673,
which forgot to free the prefixes in the manager.

Fixes #6398.

src/core/manager.c

index a737ab075402fb338a0c035277ca6f4b0b8c67d6..63893243913262f1b612883f4cc39ee3097e85fb 100644 (file)
@@ -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);
 }