From 5a8a24b463c322e322456bf3a328c92875c64f14 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 24 May 2022 10:19:14 +0800 Subject: [PATCH] fix: avoid memory leak --- source/dnode/mgmt/mgmt_mnode/src/mmWorker.c | 34 ++++----------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmWorker.c b/source/dnode/mgmt/mgmt_mnode/src/mmWorker.c index 40b1bd5cfb..7249edc706 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmWorker.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmWorker.c @@ -99,39 +99,15 @@ static inline int32_t mmPutRpcMsgToWorker(SSingleWorker *pWorker, SRpcMsg *pRpc) } int32_t mmPutRpcMsgToQueryQueue(SMnodeMgmt *pMgmt, SRpcMsg *pMsg) { - int32_t code = -1; - if (mmAcquire(pMgmt) == 0) { - mmPutRpcMsgToWorker(&pMgmt->queryWorker, pMsg); - mmRelease(pMgmt); - } else { - rpcFreeCont(pMsg->pCont); - pMsg->pCont = NULL; - } - return code; + return mmPutRpcMsgToWorker(&pMgmt->queryWorker, pMsg); } int32_t mmPutRpcMsgToWriteQueue(SMnodeMgmt *pMgmt, SRpcMsg *pMsg) { - int32_t code = -1; - if (mmAcquire(pMgmt) == 0) { - code = mmPutRpcMsgToWorker(&pMgmt->writeWorker, pMsg); - mmRelease(pMgmt); - } else { - rpcFreeCont(pMsg->pCont); - pMsg->pCont = NULL; - } - return code; + return mmPutRpcMsgToWorker(&pMgmt->writeWorker, pMsg); } int32_t mmPutRpcMsgToReadQueue(SMnodeMgmt *pMgmt, SRpcMsg *pMsg) { - int32_t code = -1; - if (mmAcquire(pMgmt) == 0) { - code = mmPutRpcMsgToWorker(&pMgmt->readWorker, pMsg); - mmRelease(pMgmt); - } else { - rpcFreeCont(pMsg->pCont); - pMsg->pCont = NULL; - } - return code; + return mmPutRpcMsgToWorker(&pMgmt->readWorker, pMsg); } int32_t mmPutRpcMsgToSyncQueue(SMnodeMgmt *pMgmt, SRpcMsg *pMsg) { @@ -139,7 +115,9 @@ int32_t mmPutRpcMsgToSyncQueue(SMnodeMgmt *pMgmt, SRpcMsg *pMsg) { if (mmAcquire(pMgmt) == 0) { code = mmPutRpcMsgToWorker(&pMgmt->syncWorker, pMsg); mmRelease(pMgmt); - } else { + } + + if (code != 0) { rpcFreeCont(pMsg->pCont); pMsg->pCont = NULL; }