diff --git a/source/dnode/mgmt/node_mgmt/src/dmMgmt.c b/source/dnode/mgmt/node_mgmt/src/dmMgmt.c index a189251378..02cfa2d43b 100644 --- a/source/dnode/mgmt/node_mgmt/src/dmMgmt.c +++ b/source/dnode/mgmt/node_mgmt/src/dmMgmt.c @@ -220,62 +220,63 @@ int32_t dmInitVars(SDnode *pDnode) { } extern SMonVloadInfo tsVinfo; -void dmClearVars(SDnode *pDnode) { - for (EDndNodeType ntype = DNODE; ntype < NODE_END; ++ntype) { - SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype]; - taosMemoryFreeClear(pWrapper->path); - (void)taosThreadRwlockDestroy(&pWrapper->lock); + +void dmClearVars(SDnode *pDnode) { + for (EDndNodeType ntype = DNODE; ntype < NODE_END; ++ntype) { + SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype]; + taosMemoryFreeClear(pWrapper->path); + (void)taosThreadRwlockDestroy(&pWrapper->lock); } - if (pDnode->lockfile != NULL) { - if (taosUnLockFile(pDnode->lockfile) != 0) { - dError("failed to unlock file"); + if (pDnode->lockfile != NULL) { + if (taosUnLockFile(pDnode->lockfile) != 0) { + dError("failed to unlock file"); } - (void)taosCloseFile(&pDnode->lockfile); - pDnode->lockfile = NULL; + (void)taosCloseFile(&pDnode->lockfile); + pDnode->lockfile = NULL; } - SDnodeData *pData = &pDnode->data; - (void)taosThreadRwlockWrlock(&pData->lock); - if (pData->oldDnodeEps != NULL) { - if (dmWriteEps(pData) == 0) { - dmRemoveDnodePairs(pData); + SDnodeData *pData = &pDnode->data; + (void)taosThreadRwlockWrlock(&pData->lock); + if (pData->oldDnodeEps != NULL) { + if (dmWriteEps(pData) == 0) { + dmRemoveDnodePairs(pData); } - taosArrayDestroy(pData->oldDnodeEps); - pData->oldDnodeEps = NULL; + taosArrayDestroy(pData->oldDnodeEps); + pData->oldDnodeEps = NULL; } - if (pData->dnodeEps != NULL) { - taosArrayDestroy(pData->dnodeEps); - pData->dnodeEps = NULL; + if (pData->dnodeEps != NULL) { + taosArrayDestroy(pData->dnodeEps); + pData->dnodeEps = NULL; } - if (pData->dnodeHash != NULL) { - taosHashCleanup(pData->dnodeHash); - pData->dnodeHash = NULL; + if (pData->dnodeHash != NULL) { + taosHashCleanup(pData->dnodeHash); + pData->dnodeHash = NULL; } - (void)taosThreadRwlockUnlock(&pData->lock); + (void)taosThreadRwlockUnlock(&pData->lock); - (void)taosThreadRwlockDestroy(&pData->lock); + (void)taosThreadRwlockDestroy(&pData->lock); - dDebug("begin to lock status info when thread exit"); - if (taosThreadMutexLock(&pData->statusInfolock) != 0) { - dError("failed to lock status info lock"); - return; + dDebug("begin to lock status info when thread exit"); + if (taosThreadMutexLock(&pData->statusInfolock) != 0) { + dError("failed to lock status info lock"); + return; } - if (tsVinfo.pVloads != NULL) { - taosArrayDestroy(tsVinfo.pVloads); - tsVinfo.pVloads = NULL; + if (tsVinfo.pVloads != NULL) { + taosArrayDestroy(tsVinfo.pVloads); + tsVinfo.pVloads = NULL; } - if (taosThreadMutexUnlock(&pData->statusInfolock) != 0) { - dError("failed to unlock status info lock"); - return; + if (taosThreadMutexUnlock(&pData->statusInfolock) != 0) { + dError("failed to unlock status info lock"); + return; } - if (taosThreadMutexDestroy(&pData->statusInfolock) != 0) { - dError("failed to destroy status info lock"); + if (taosThreadMutexDestroy(&pData->statusInfolock) != 0) { + dError("failed to destroy status info lock"); } - memset(&pData->statusInfolock, 0, sizeof(pData->statusInfolock)); + memset(&pData->statusInfolock, 0, sizeof(pData->statusInfolock)); - (void)taosThreadMutexDestroy(&pDnode->mutex); - memset(&pDnode->mutex, 0, sizeof(pDnode->mutex)); + (void)taosThreadMutexDestroy(&pDnode->mutex); + memset(&pDnode->mutex, 0, sizeof(pDnode->mutex)); } void dmSetStatus(SDnode *pDnode, EDndRunStatus status) { diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index 1eefb024a2..9ed5861d50 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -1884,7 +1884,7 @@ static int32_t mndMCfgGetValInt32(SMCfgDnodeReq *pMCfgReq, int32_t optLen, int32 if (strlen(pMCfgReq->value) != 0) goto _err; code = taosStr2int32(pMCfgReq->config + optLen + 1, pOutValue); if (code != 0) { - mError("dnode:%d, failed to get cfg since code: %s", pMCfgReq->dnodeId, tstrerror(code)); + mError("dnode:%d, failed to get cfg since %s", pMCfgReq->dnodeId, tstrerror(code)); goto _err; } } else { @@ -1892,7 +1892,7 @@ static int32_t mndMCfgGetValInt32(SMCfgDnodeReq *pMCfgReq, int32_t optLen, int32 if (strlen(pMCfgReq->value) == 0) goto _err; code = taosStr2int32(pMCfgReq->value, pOutValue); if (code != 0) { - mError("dnode:%d, failed to get cfg since code: %s", pMCfgReq->dnodeId, tstrerror(code)); + mError("dnode:%d, failed to get cfg since %s", pMCfgReq->dnodeId, tstrerror(code)); goto _err; } } diff --git a/source/dnode/mnode/impl/src/mndMain.c b/source/dnode/mnode/impl/src/mndMain.c index 5acfcf6ac1..573a4f62eb 100644 --- a/source/dnode/mnode/impl/src/mndMain.c +++ b/source/dnode/mnode/impl/src/mndMain.c @@ -530,7 +530,7 @@ static int32_t mndInitWal(SMnode *pMnode) { code = TSDB_CODE_DNODE_INVALID_ENCRYPTKEY; TAOS_RETURN(code); } else { - tstrncpy(cfg.encryptKey, tsEncryptKey, ENCRYPT_KEY_LEN); + tstrncpy(cfg.encryptKey, tsEncryptKey, ENCRYPT_KEY_LEN + 1); } } #endif diff --git a/source/libs/wal/src/walWrite.c b/source/libs/wal/src/walWrite.c index 30ac137f66..abd11c3f65 100644 --- a/source/libs/wal/src/walWrite.c +++ b/source/libs/wal/src/walWrite.c @@ -638,7 +638,7 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy opts.source = newBody; opts.result = newBodyEncrypted; opts.unitLen = 16; - tstrncpy((char *)opts.key, pWal->cfg.encryptKey, ENCRYPT_KEY_LEN); + tstrncpy((char *)opts.key, pWal->cfg.encryptKey, ENCRYPT_KEY_LEN + 1); int32_t count = CBC_Encrypt(&opts); diff --git a/source/os/src/osString.c b/source/os/src/osString.c index fd2c44a49e..40bc464519 100644 --- a/source/os/src/osString.c +++ b/source/os/src/osString.c @@ -123,10 +123,8 @@ int32_t taosStr2int64(const char *str, int64_t *val) { errno = 0; char *endptr = NULL; int64_t ret = strtoll(str, &endptr, 10); - if (errno == ERANGE && (ret == LLONG_MAX || ret == LLONG_MIN)) { + if (errno != 0) { return TAOS_SYSTEM_ERROR(errno); - } else if (errno == EINVAL && ret == 0) { - return TSDB_CODE_INVALID_PARA; } else { if (endptr == str) { return TSDB_CODE_INVALID_PARA; @@ -187,12 +185,11 @@ int32_t taosStr2Uint64(const char *str, uint64_t *val) { char *endptr = NULL; errno = 0; uint64_t ret = strtoull(str, &endptr, 10); - if (errno == ERANGE && (ret == ULLONG_MAX)) { + + if (errno != 0) { return TAOS_SYSTEM_ERROR(errno); - } else if (errno == EINVAL && ret == 0) { - return TSDB_CODE_INVALID_PARA; } else { - if (str == endptr) { + if (endptr == str) { return TSDB_CODE_INVALID_PARA; } *val = ret; diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index b3fd6455b6..4b2b4d6fec 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -283,30 +283,25 @@ static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value, tstrncpy(cfg.dir, pItem->str, sizeof(cfg.dir)); code = taosStr2int32(level, &cfg.level); - if (code != 0) { - cfg.level = 0; - } + TAOS_CHECK_GOTO(code, NULL, _err); code = taosStr2int32(primary, &cfg.primary); - if (code != 0) { - cfg.primary = 1; - } - + TAOS_CHECK_GOTO(code, NULL, _err); code = taosStr2int8(disable, &cfg.disable); - if (code != 0) { - cfg.disable = 0; - } + TAOS_CHECK_GOTO(code, NULL, _err); void *ret = taosArrayPush(pItem->array, &cfg); if (ret == NULL) { - (void)taosThreadMutexUnlock(&pCfg->lock); - - TAOS_RETURN(terrno); + code = terrno; + TAOS_CHECK_GOTO(code, NULL, _err); } pItem->stype = stype; (void)taosThreadMutexUnlock(&pCfg->lock); TAOS_RETURN(TSDB_CODE_SUCCESS); +_err: + (void)taosThreadMutexUnlock(&pCfg->lock); + TAOS_RETURN(code); } static int32_t cfgUpdateDebugFlagItem(SConfig *pCfg, const char *name, bool resetArray) {