From 72028706481972a1add2405d0bb7fc99d20b0769 Mon Sep 17 00:00:00 2001 From: dengyihao Date: Wed, 1 Jul 2020 17:59:43 +0800 Subject: [PATCH 1/2] fixbug use_after_free --- src/rpc/src/rpcMain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/src/rpcMain.c b/src/rpc/src/rpcMain.c index facfb79352..429edc412e 100644 --- a/src/rpc/src/rpcMain.c +++ b/src/rpc/src/rpcMain.c @@ -1530,9 +1530,9 @@ static void rpcDecRef(SRpcInfo *pRpc) { if (atomic_sub_fetch_32(&pRpc->refCount, 1) == 0) { taosHashCleanup(pRpc->hash); - taosTmrCleanUp(pRpc->tmrCtrl); taosIdPoolCleanUp(pRpc->idPool); rpcCloseConnCache(pRpc->pCache); + taosTmrCleanUp(pRpc->tmrCtrl); tfree(pRpc->connList); pthread_mutex_destroy(&pRpc->mutex); From 1dc0f769d2b7d66bb412ce303909947e1fa17271 Mon Sep 17 00:00:00 2001 From: dengyihao Date: Wed, 1 Jul 2020 19:42:09 +0800 Subject: [PATCH 2/2] adjust code --- src/rpc/src/rpcMain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpc/src/rpcMain.c b/src/rpc/src/rpcMain.c index 429edc412e..e4f364d3d3 100644 --- a/src/rpc/src/rpcMain.c +++ b/src/rpc/src/rpcMain.c @@ -1529,10 +1529,10 @@ static void rpcAddRef(SRpcInfo *pRpc) static void rpcDecRef(SRpcInfo *pRpc) { if (atomic_sub_fetch_32(&pRpc->refCount, 1) == 0) { - taosHashCleanup(pRpc->hash); - taosIdPoolCleanUp(pRpc->idPool); rpcCloseConnCache(pRpc->pCache); + taosHashCleanup(pRpc->hash); taosTmrCleanUp(pRpc->tmrCtrl); + taosIdPoolCleanUp(pRpc->idPool); tfree(pRpc->connList); pthread_mutex_destroy(&pRpc->mutex);