Blame SOURCES/0027-Fix-pacemaker_remote-memory-leak-in-ipc_proxy_dispat.patch

3d71c6
From: Ken Gaillot <kgaillot@redhat.com>
3d71c6
Date: Mon, 14 Sep 2015 15:00:13 -0500
3d71c6
Subject: [PATCH] Fix: pacemaker_remote: memory leak in ipc_proxy_dispatch()
3d71c6
3d71c6
Detected via routine valgrind testing
3d71c6
3d71c6
(cherry picked from commit 3bb439d1554cb5567b886c52107bd3bb6f27b696)
3d71c6
---
3d71c6
 lrmd/ipc_proxy.c | 5 +++--
3d71c6
 1 file changed, 3 insertions(+), 2 deletions(-)
3d71c6
3d71c6
diff --git a/lrmd/ipc_proxy.c b/lrmd/ipc_proxy.c
3d71c6
index 9427393..2a5ad78 100644
3d71c6
--- a/lrmd/ipc_proxy.c
3d71c6
+++ b/lrmd/ipc_proxy.c
3d71c6
@@ -223,9 +223,9 @@ ipc_proxy_dispatch(qb_ipcs_connection_t * c, void *data, size_t size)
3d71c6
     }
3d71c6
 
3d71c6
     CRM_CHECK(client != NULL, crm_err("Invalid client");
3d71c6
-              return FALSE);
3d71c6
+              free_xml(request); return FALSE);
3d71c6
     CRM_CHECK(client->id != NULL, crm_err("Invalid client: %p", client);
3d71c6
-              return FALSE);
3d71c6
+              free_xml(request); return FALSE);
3d71c6
 
3d71c6
     /* this ensures that synced request/responses happen over the event channel
3d71c6
      * in the crmd, allowing the crmd to process the messages async */
3d71c6
@@ -241,6 +241,7 @@ ipc_proxy_dispatch(qb_ipcs_connection_t * c, void *data, size_t size)
3d71c6
     crm_xml_add_int(msg, F_LRMD_IPC_MSG_FLAGS, flags);
3d71c6
     add_message_xml(msg, F_LRMD_IPC_MSG, request);
3d71c6
     lrmd_server_send_notify(ipc_proxy, msg);
3d71c6
+    free_xml(request);
3d71c6
     free_xml(msg);
3d71c6
 
3d71c6
     return 0;