diff --git a/src/mnode/src/mnodeSdb.c b/src/mnode/src/mnodeSdb.c index 601745461a8ba3486bfb9dc560c76e303153eab5..e1d255ee76ee9140ee5a9a071582d73fa67b272d 100644 --- a/src/mnode/src/mnodeSdb.c +++ b/src/mnode/src/mnodeSdb.c @@ -287,7 +287,7 @@ void sdbUpdateSync() { SDnodeObj *pDnode = mnodeGetDnode(pMnode->mnodeId); if (pDnode != NULL) { syncCfg.nodeInfo[index].nodePort = pDnode->dnodePort + TSDB_PORT_SYNC; - strcpy(syncCfg.nodeInfo[index].nodeFqdn, pDnode->dnodeEp); + tstrncpy(syncCfg.nodeInfo[index].nodeFqdn, pDnode->dnodeFqdn, TSDB_FQDN_LEN); index++; } @@ -976,11 +976,11 @@ static void *sdbWorkerFp(void *param) { tstrerror(pOper->retCode)); } - dnodeSendRpcMnodeWriteRsp(pOper->pMsg, pOper->retCode); - if (pOper != NULL) { sdbDecRef(pOper->table, pOper->pObj); } + + dnodeSendRpcMnodeWriteRsp(pOper->pMsg, pOper->retCode); } taosFreeQitem(item); } diff --git a/src/mnode/src/mnodeTable.c b/src/mnode/src/mnodeTable.c index 023ae689198a89530895f343635111f5c9f7a3dd..2d9892cf017f0674d6a944af12641633d84f1b68 100644 --- a/src/mnode/src/mnodeTable.c +++ b/src/mnode/src/mnodeTable.c @@ -1254,13 +1254,13 @@ int32_t mnodeRetrieveShowSuperTables(SShowObj *pShow, char *data, int32_t rows, char * pWrite; int32_t cols = 0; SSuperTableObj *pTable = NULL; - char prefix[20] = {0}; + char prefix[64] = {0}; int32_t prefixLen; SDbObj *pDb = mnodeGetDb(pShow->db); if (pDb == NULL) return 0; - strcpy(prefix, pDb->name); + tstrncpy(prefix, pDb->name, 64); strcat(prefix, TS_PATH_DELIMITER); prefixLen = strlen(prefix); @@ -1558,10 +1558,10 @@ static void *mnodeBuildCreateChildTableMsg(SCMCreateTableMsg *pMsg, SChildTableO static int32_t mnodeDoCreateChildTableCb(SMnodeMsg *pMsg, int32_t code) { SChildTableObj *pTable = (SChildTableObj *)pMsg->pTable; - if (pTable != NULL) { - mDebug("app:%p:%p, table:%s, create table in id:%d, uid:%" PRIu64 ", result:%s", pMsg->rpcMsg.ahandle, pMsg, - pTable->info.tableId, pTable->sid, pTable->uid, tstrerror(code)); - } + assert(pTable); + + mDebug("app:%p:%p, table:%s, create table in id:%d, uid:%" PRIu64 ", result:%s", pMsg->rpcMsg.ahandle, pMsg, + pTable->info.tableId, pTable->sid, pTable->uid, tstrerror(code)); if (code != TSDB_CODE_SUCCESS) return code; @@ -2370,7 +2370,7 @@ static int32_t mnodeRetrieveShowTables(SShowObj *pShow, char *data, int32_t rows SPatternCompareInfo info = PATTERN_COMPARE_INFO_INITIALIZER; char prefix[64] = {0}; - strcpy(prefix, pDb->name); + tstrncpy(prefix, pDb->name, 64); strcat(prefix, TS_PATH_DELIMITER); int32_t prefixLen = strlen(prefix); @@ -2560,7 +2560,7 @@ static int32_t mnodeRetrieveStreamTables(SShowObj *pShow, char *data, int32_t ro SPatternCompareInfo info = PATTERN_COMPARE_INFO_INITIALIZER; char prefix[64] = {0}; - strcpy(prefix, pDb->name); + tstrncpy(prefix, pDb->name, 64); strcat(prefix, TS_PATH_DELIMITER); int32_t prefixLen = strlen(prefix); diff --git a/src/vnode/src/vnodeMain.c b/src/vnode/src/vnodeMain.c index 89af7b988d603a211261c1a556820dd44e1b77b6..4693dc02d3c57fd13d6026e319e7a99ef1fc7a8f 100644 --- a/src/vnode/src/vnodeMain.c +++ b/src/vnode/src/vnodeMain.c @@ -601,10 +601,11 @@ static int32_t vnodeReadCfg(SVnodeObj *pVnode) { content = calloc(1, maxLen + 1); if (content == NULL) goto PARSE_OVER; - int len = fread(content, 1, maxLen, fp); + int len = fread(content, 1, maxLen, fp); if (len <= 0) { vError("vgId:%d, failed to read vnode cfg, content is null", pVnode->vgId); free(content); + fclose(fp); return errno; } @@ -649,7 +650,7 @@ static int32_t vnodeReadCfg(SVnodeObj *pVnode) { } pVnode->tsdbCfg.maxTables = maxTables->valueint; - cJSON *daysPerFile = cJSON_GetObjectItem(root, "daysPerFile"); + cJSON *daysPerFile = cJSON_GetObjectItem(root, "daysPerFile"); if (!daysPerFile || daysPerFile->type != cJSON_Number) { vError("vgId:%d, failed to read vnode cfg, daysPerFile not found", pVnode->vgId); goto PARSE_OVER;