From dd65d4af44f7e36b969e1f3b47e596c899e04021 Mon Sep 17 00:00:00 2001 From: John Sully Date: Tue, 23 Aug 2022 06:37:26 +0000 Subject: [PATCH] Fix ASAN use after free --- src/cluster.cpp | 2 +- src/replication.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cluster.cpp b/src/cluster.cpp index 99af97594..7f6d897c9 100644 --- a/src/cluster.cpp +++ b/src/cluster.cpp @@ -771,7 +771,7 @@ unsigned long getClusterConnectionsCount(void) { /* We decrement the number of nodes by one, since there is the * "myself" node too in the list. Each node uses two file descriptors, * one incoming and one outgoing, thus the multiplication by 2. */ - return g_pserver->cluster_enabled ? + return g_pserver->cluster_enabled && g_pserver->cluster != nullptr ? ((dictSize(g_pserver->cluster->nodes)-1)*2) : 0; } diff --git a/src/replication.cpp b/src/replication.cpp index 3b8b6f9e1..822394c43 100644 --- a/src/replication.cpp +++ b/src/replication.cpp @@ -3961,6 +3961,10 @@ void freeMasterInfo(redisMaster *mi) { sdsfree(mi->masterauth); zfree(mi->masteruser); + if (g_pserver->rdb_filename != nullptr && g_pserver->rdb_filename == mi->repl_transfer_tmpfile) { + unlink(g_pserver->rdb_filename); + g_pserver->rdb_filename = nullptr; + } if (mi->repl_transfer_tmpfile) zfree(mi->repl_transfer_tmpfile); delete mi->staleKeyMap;