From 121adc604b4cee16fd5af15456bbb7665f37ce71 Mon Sep 17 00:00:00 2001
From: Artix <artix2@gmail.com>
Date: Wed, 6 Jun 2018 20:14:58 +0200
Subject: [PATCH] Cluster Manager: fix memory leaks in
 clusterManagerGetDisconnectedLinks

---
 src/redis-cli.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/redis-cli.c b/src/redis-cli.c
index 9e246dce..71c8c6b3 100644
--- a/src/redis-cli.c
+++ b/src/redis-cli.c
@@ -3889,7 +3889,7 @@ static list *clusterManagerGetDisconnectedLinks(clusterManagerNode *node) {
                             (strstr(link_status, "disconnected")));
         int handshaking = (strstr(flags, "handshake") != NULL);
         if (disconnected || handshaking) {
-            clusterManagerLink *link = malloc(sizeof(*link)); 
+            clusterManagerLink *link = zmalloc(sizeof(*link)); 
             link->node_name = sdsnew(nodename);
             link->node_addr = sdsnew(addr);
             link->connected = 0;
@@ -3908,6 +3908,7 @@ cleanup:
 static dict *clusterManagerGetLinkStatus(void) {
     if (cluster_manager.nodes == NULL) return NULL;
     dictType dtype = clusterManagerDictType;
+    dtype.keyDestructor = dictSdsDestructor;
     dtype.valDestructor = dictListDestructor;
     dict *status = dictCreate(&dtype, NULL);
     listIter li;