diff --git a/src/rpc/src/rpcMain.c b/src/rpc/src/rpcMain.c index d14a98ab3086fb24f2e080318f3be6f3b8d17c77..e432e47e368f030d8ee3e68cea8f5c6055915b69 100644 --- a/src/rpc/src/rpcMain.c +++ b/src/rpc/src/rpcMain.c @@ -603,7 +603,10 @@ static void rpcReleaseConn(SRpcConn *pConn) { rpcFreeMsg(pConn->pRspMsg); // it may have a response msg saved, but not request msg pConn->pRspMsg = NULL; if (pConn->pReqMsg) rpcFreeCont(pConn->pReqMsg); - } + } else { + if (pConn->outType && pConn->pReqMsg) + rpcFreeCont(pConn->pReqMsg); + } // memset could not be used, since lockeBy can not be reset pConn->inType = 0;