From 964f4a457633cecf98d9501d626d6b6b56a8475b Mon Sep 17 00:00:00 2001 From: Harkrishn Patro Date: Thu, 11 Jan 2024 15:59:22 -0800 Subject: [PATCH] Avoid double free of cluster link (#12930) Avoid crash while performing `DEBUG CLUSTERLINK KILL` mutliple times (cluster link might not be created/valid). --- src/cluster_legacy.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cluster_legacy.c b/src/cluster_legacy.c index db25461f5..8dee109df 100644 --- a/src/cluster_legacy.c +++ b/src/cluster_legacy.c @@ -5796,12 +5796,12 @@ int handleDebugClusterCommand(client *c) { /* Terminate the link based on the direction or all. */ if (!strcasecmp(c->argv[3]->ptr, "from")) { - freeClusterLink(n->inbound_link); + if (n->inbound_link) freeClusterLink(n->inbound_link); } else if (!strcasecmp(c->argv[3]->ptr, "to")) { - freeClusterLink(n->link); + if (n->link) freeClusterLink(n->link); } else if (!strcasecmp(c->argv[3]->ptr, "all")) { - freeClusterLink(n->link); - freeClusterLink(n->inbound_link); + if (n->link) freeClusterLink(n->link); + if (n->inbound_link) freeClusterLink(n->inbound_link); } else { addReplyErrorFormat(c, "Unknown direction %s", (char *) c->argv[3]->ptr); }