diff -Nru pacemaker-1.1.10+git20130802/debian/changelog pacemaker-1.1.10+git20130802/debian/changelog --- pacemaker-1.1.10+git20130802/debian/changelog 2017-06-02 14:11:13.000000000 -0400 +++ pacemaker-1.1.10+git20130802/debian/changelog 2018-02-20 05:36:53.000000000 -0500 @@ -1,3 +1,10 @@ +pacemaker (1.1.10+git20130802-1ubuntu2.5) trusty; urgency=medium + + * Fixing memory leak (LP: #1316970) + - adding free function where is missing + + -- Seyeong Kim Tue, 20 Feb 2018 19:36:53 +0900 + pacemaker (1.1.10+git20130802-1ubuntu2.4) trusty-security; urgency=medium * SECURITY UPDATE: Improper IPC guarding diff -Nru pacemaker-1.1.10+git20130802/debian/patches/fix_memory_leak.patch pacemaker-1.1.10+git20130802/debian/patches/fix_memory_leak.patch --- pacemaker-1.1.10+git20130802/debian/patches/fix_memory_leak.patch 1969-12-31 19:00:00.000000000 -0500 +++ pacemaker-1.1.10+git20130802/debian/patches/fix_memory_leak.patch 2018-02-20 05:36:53.000000000 -0500 @@ -0,0 +1,69 @@ +Description: Fixing memory leak in upstart.c + 1.1.10 has memory leak. There are many missing free function. + However 1.1.11 has large code changes so I'm modifying code + directly. +Author: Seyeong Kim +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1316970 +Forwarded: not-needed +Last-Update: 2018-02-02 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/lib/services/upstart.c ++++ b/lib/services/upstart.c +@@ -224,7 +224,7 @@ + } else if (pass) { + crm_trace("Got %s", path); + } +- /* free(path) */ ++ free(path); + return pass; + } + +@@ -272,6 +272,8 @@ + + g_object_unref(proxy); + g_variant_unref(_ret); ++ g_variant_unref(value); ++ g_variant_unref(asv); + return output; + } + +@@ -299,11 +301,14 @@ + GVariant *tmp2 = g_variant_get_child_value(tmp1, 0); + + instance = g_variant_dup_string(tmp2, NULL); ++ g_variant_unref(tmp2); + } ++ g_variant_unref(tmp1); + } + + crm_info("Result: %s", instance); + g_variant_unref(_ret); ++ g_object_unref(proxy); + return instance; + } + +@@ -338,6 +343,7 @@ + } + + crm_info("%s is%s running", name, pass ? "" : " not"); ++ free(job); + return pass; + } + +@@ -400,6 +406,7 @@ + crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), + path); + op->rc = PCMK_EXECRA_OK; ++ free(path); + + } else { + crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); +@@ -501,6 +508,7 @@ + crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), + path); + op->rc = PCMK_EXECRA_OK; ++ free(path); + + } else { + crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); diff -Nru pacemaker-1.1.10+git20130802/debian/patches/series pacemaker-1.1.10+git20130802/debian/patches/series --- pacemaker-1.1.10+git20130802/debian/patches/series 2017-06-02 14:10:56.000000000 -0400 +++ pacemaker-1.1.10+git20130802/debian/patches/series 2018-02-20 05:36:53.000000000 -0500 @@ -8,3 +8,4 @@ Fix-services-Fixes-segfault-associated-with-cancelling-inflight-operations.patch Fix-services-Remove-cancelled-recurring-ops-from-internal-lists.patch CVE-2016-7035.patch +fix_memory_leak.patch