diff --git a/src/rpc/src/rpcMain.c b/src/rpc/src/rpcMain.c index 200d189d45f5b1f0457f66c6f941061167cefaca..ef201420d2d76291f5ca0324c8a4e0a237833dea 100644 --- a/src/rpc/src/rpcMain.c +++ b/src/rpc/src/rpcMain.c @@ -420,7 +420,12 @@ void rpcSendResponse(const SRpcMsg *pRsp) { SRpcMsg *pMsg = &rpcMsg; SRpcInfo *pRpc = pConn->pRpc; - if ( pMsg->pCont == NULL ) { + if (pConn == NULL) { + rpcFreeCont(pMsg->pCont); + return; + } + + if (pMsg->pCont == NULL) { pMsg->pCont = rpcMallocCont(0); pMsg->contLen = 0; } @@ -1021,7 +1026,7 @@ static void rpcReportBrokenLinkToServer(SRpcConn *pConn) { rpcMsg.pCont = pConn->pReqMsg; // pReqMsg is re-used to store the APP context from server rpcMsg.contLen = pConn->reqMsgLen; // reqMsgLen is re-used to store the APP context length rpcMsg.ahandle = pConn->ahandle; - rpcMsg.handle = pConn; + rpcMsg.handle = NULL; rpcMsg.msgType = pConn->inType; rpcMsg.code = TSDB_CODE_RPC_NETWORK_UNAVAIL; pConn->pReqMsg = NULL;