From dea8d6fd62f6612a598f8c5b840a997761b71da6 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Fri, 13 Dec 2024 15:03:01 +0800 Subject: [PATCH] fix some code --- source/common/src/tglobal.c | 2 +- .../dnode/vnode/src/tsdb/tsdbReaderWriter.c | 2 +- source/dnode/vnode/src/vnd/vnodeOpen.c | 2 +- source/dnode/vnode/src/vnd/vnodeQuery.c | 10 +++--- source/dnode/vnode/src/vnd/vnodeSvr.c | 4 +-- source/libs/wal/src/walRead.c | 2 +- source/util/src/tconfig.c | 4 +-- source/util/src/tenv.c | 4 ++- source/util/src/tunit.c | 36 ++----------------- 9 files changed, 18 insertions(+), 48 deletions(-) diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index e43bdc4687..c06f9600c2 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -568,7 +568,7 @@ static int32_t taosAddClientCfg(SConfig *pCfg) { char defaultFqdn[TSDB_FQDN_LEN] = {0}; int32_t defaultServerPort = 6030; if (taosGetFqdn(defaultFqdn) != 0) { - (void)strcpy(defaultFqdn, "localhost"); + tstrncpy(defaultFqdn, "localhost", TSDB_FQDN_LEN); } TAOS_CHECK_RETURN(cfgAddString(pCfg, "firstEp", "", CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); diff --git a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c index 6dba1825ad..77e89763c2 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c +++ b/source/dnode/vnode/src/tsdb/tsdbReaderWriter.c @@ -104,7 +104,7 @@ int32_t tsdbOpenFile(const char *path, STsdb *pTsdb, int32_t flag, STsdbFD **ppF } pFD->path = (char *)&pFD[1]; - strcpy(pFD->path, path); + tstrncpy(pFD->path, path, strlen(path) + 1); pFD->szPage = szPage; pFD->flag = flag; pFD->szPage = szPage; diff --git a/source/dnode/vnode/src/vnd/vnodeOpen.c b/source/dnode/vnode/src/vnd/vnodeOpen.c index b91abe93af..aa9dbd6cf7 100644 --- a/source/dnode/vnode/src/vnd/vnodeOpen.c +++ b/source/dnode/vnode/src/vnd/vnodeOpen.c @@ -199,7 +199,7 @@ int32_t vnodeRenameVgroupId(const char *srcPath, const char *dstPath, int32_t sr char *tsdbFilePrefixPos = strstr(oldRname, tsdbFilePrefix); if (tsdbFilePrefixPos == NULL) continue; - int32_t tsdbFileVgId = 0; // atoi(tsdbFilePrefixPos + prefixLen); + int32_t tsdbFileVgId = 0; ret = taosStr2int32(tsdbFilePrefixPos + prefixLen, &tsdbFileVgId); if (ret != 0) { vError("vgId:%d, failed to get tsdb file vgid since %s", dstVgId, tstrerror(ret)); diff --git a/source/dnode/vnode/src/vnd/vnodeQuery.c b/source/dnode/vnode/src/vnd/vnodeQuery.c index 6ca5803c19..0e0fddfc1f 100644 --- a/source/dnode/vnode/src/vnd/vnodeQuery.c +++ b/source/dnode/vnode/src/vnd/vnodeQuery.c @@ -71,7 +71,7 @@ int32_t vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) { if (infoReq.option == REQ_OPT_TBUID) reqTbUid = true; metaRsp.dbId = pVnode->config.dbId; - (void)strcpy(metaRsp.tbName, infoReq.tbName); + tstrncpy(metaRsp.tbName, infoReq.tbName, TSDB_TABLE_NAME_LEN); (void)memcpy(metaRsp.dbFName, infoReq.dbFName, sizeof(metaRsp.dbFName)); if (!reqTbUid) { @@ -105,7 +105,7 @@ int32_t vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) { metaRsp.tuid = mer1.me.uid; if (mer1.me.type == TSDB_SUPER_TABLE) { - (void)strcpy(metaRsp.stbName, mer1.me.name); + tstrncpy(metaRsp.stbName, mer1.me.name, TSDB_TABLE_NAME_LEN); schema = mer1.me.stbEntry.schemaRow; schemaTag = mer1.me.stbEntry.schemaTag; metaRsp.suid = mer1.me.uid; @@ -113,7 +113,7 @@ int32_t vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) { metaReaderDoInit(&mer2, pVnode->pMeta, META_READER_NOLOCK); if (metaReaderGetTableEntryByUid(&mer2, mer1.me.ctbEntry.suid) < 0) goto _exit2; - (void)strcpy(metaRsp.stbName, mer2.me.name); + tstrncpy(metaRsp.stbName, mer2.me.name, TSDB_TABLE_NAME_LEN); metaRsp.suid = mer2.me.uid; schema = mer2.me.stbEntry.schemaRow; schemaTag = mer2.me.stbEntry.schemaTag; @@ -220,7 +220,7 @@ int32_t vnodeGetTableCfg(SVnode *pVnode, SRpcMsg *pMsg, bool direct) { goto _exit; } - (void)strcpy(cfgRsp.tbName, cfgReq.tbName); + tstrncpy(cfgRsp.tbName, cfgReq.tbName, TSDB_TABLE_NAME_LEN); (void)memcpy(cfgRsp.dbFName, cfgReq.dbFName, sizeof(cfgRsp.dbFName)); (void)sprintf(tableFName, "%s.%s", cfgReq.dbFName, cfgReq.tbName); @@ -246,7 +246,7 @@ int32_t vnodeGetTableCfg(SVnode *pVnode, SRpcMsg *pMsg, bool direct) { metaReaderDoInit(&mer2, pVnode->pMeta, META_READER_LOCK); if (metaReaderGetTableEntryByUid(&mer2, mer1.me.ctbEntry.suid) < 0) goto _exit; - (void)strcpy(cfgRsp.stbName, mer2.me.name); + tstrncpy(cfgRsp.stbName, mer2.me.name, TSDB_TABLE_NAME_LEN); schema = mer2.me.stbEntry.schemaRow; schemaTag = mer2.me.stbEntry.schemaTag; cfgRsp.ttl = mer1.me.ctbEntry.ttlDays; diff --git a/source/dnode/vnode/src/vnd/vnodeSvr.c b/source/dnode/vnode/src/vnd/vnodeSvr.c index b1c206bdae..fa3a31eb16 100644 --- a/source/dnode/vnode/src/vnd/vnodeSvr.c +++ b/source/dnode/vnode/src/vnd/vnodeSvr.c @@ -968,7 +968,7 @@ void vnodeUpdateMetaRsp(SVnode *pVnode, STableMetaRsp *pMetaRsp) { return; } - strcpy(pMetaRsp->dbFName, pVnode->config.dbname); + tstrncpy(pMetaRsp->dbFName, pVnode->config.dbname, TSDB_DB_FNAME_LEN); pMetaRsp->dbId = pVnode->config.dbId; pMetaRsp->vgId = TD_VID(pVnode); pMetaRsp->precision = pVnode->config.tsdbCfg.precision; @@ -1216,7 +1216,7 @@ static int32_t vnodeProcessCreateTbReq(SVnode *pVnode, int64_t ver, void *pReq, rcode = -1; goto _exit; } - strcpy(str, pCreateReq->name); + tstrncpy(str, pCreateReq->name, TSDB_TABLE_FNAME_LEN); if (taosArrayPush(tbNames, &str) == NULL) { terrno = TSDB_CODE_OUT_OF_MEMORY; rcode = -1; diff --git a/source/libs/wal/src/walRead.c b/source/libs/wal/src/walRead.c index da5e1f47e9..43a2ff6a23 100644 --- a/source/libs/wal/src/walRead.c +++ b/source/libs/wal/src/walRead.c @@ -539,7 +539,7 @@ int32_t decryptBody(SWalCfg *cfg, SWalCkHead *pHead, int32_t plainBodyLen, const opts.source = pHead->head.body; opts.result = newBody; opts.unitLen = 16; - TAOS_UNUSED(strncpy((char *)opts.key, cfg->encryptKey, 16)); + tstrncpy((char *)opts.key, cfg->encryptKey, sizeof(opts.key)); int32_t count = CBC_Decrypt(&opts); diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index 7ff1f18387..9a69d1df54 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -1214,14 +1214,14 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { int32_t len = 0; char newValue[1024] = {0}; - strcpy(newValue, value); + tstrncpy(newValue, value, sizeof(newValue)); int32_t count = 1; while (vlen < 1024) { (void)paGetToken(value + vlen + 1 * count, &tmp, &len); if (len == 0) break; tmp[len] = 0; - strcpy(newValue + vlen, tmp); + tstrncpy(newValue + vlen, tmp, sizeof(newValue) - vlen); vlen += len; count++; } diff --git a/source/util/src/tenv.c b/source/util/src/tenv.c index 539687878b..a03d8fa51d 100644 --- a/source/util/src/tenv.c +++ b/source/util/src/tenv.c @@ -57,7 +57,9 @@ int32_t taosEnvToCfg(const char *envStr, char *cfgStr) { if (envStr == NULL || cfgStr == NULL) { return TSDB_CODE_INVALID_PARA; } - if (cfgStr != envStr) strcpy(cfgStr, envStr); + if (cfgStr != envStr) { + tstrncpy(cfgStr, envStr, strlen(envStr) + 1); + } char *p = strchr(cfgStr, '='); if (p != NULL) { diff --git a/source/util/src/tunit.c b/source/util/src/tunit.c index e73045cc89..357e942faa 100644 --- a/source/util/src/tunit.c +++ b/source/util/src/tunit.c @@ -95,33 +95,14 @@ static int32_t parseCfgIntWithUnit(const char* str, int64_t* res) { } int32_t taosStrHumanToInt64(const char* str, int64_t* out) { - int64_t res; + int64_t res; int32_t code = parseCfgIntWithUnit(str, &res); if (code == TSDB_CODE_SUCCESS) *out = (int64_t)res; return code; } -#ifdef BUILD_NO_CALL -void taosInt64ToHumanStr(int64_t val, char* outStr) { - if (((val >= UNIT_ONE_EXBIBYTE) || (-val >= UNIT_ONE_EXBIBYTE)) && ((val % UNIT_ONE_EXBIBYTE) == 0)) { - sprintf(outStr, "%qdE", (long long)val / UNIT_ONE_EXBIBYTE); - } else if (((val >= UNIT_ONE_PEBIBYTE) || (-val >= UNIT_ONE_PEBIBYTE)) && ((val % UNIT_ONE_PEBIBYTE) == 0)) { - sprintf(outStr, "%qdP", (long long)val / UNIT_ONE_PEBIBYTE); - } else if (((val >= UNIT_ONE_TEBIBYTE) || (-val >= UNIT_ONE_TEBIBYTE)) && ((val % UNIT_ONE_TEBIBYTE) == 0)) { - sprintf(outStr, "%qdT", (long long)val / UNIT_ONE_TEBIBYTE); - } else if (((val >= UNIT_ONE_GIBIBYTE) || (-val >= UNIT_ONE_GIBIBYTE)) && ((val % UNIT_ONE_GIBIBYTE) == 0)) { - sprintf(outStr, "%qdG", (long long)val / UNIT_ONE_GIBIBYTE); - } else if (((val >= UNIT_ONE_MEBIBYTE) || (-val >= UNIT_ONE_MEBIBYTE)) && ((val % UNIT_ONE_MEBIBYTE) == 0)) { - sprintf(outStr, "%qdM", (long long)val / UNIT_ONE_MEBIBYTE); - } else if (((val >= UNIT_ONE_KIBIBYTE) || (-val >= UNIT_ONE_KIBIBYTE)) && ((val % UNIT_ONE_KIBIBYTE) == 0)) { - sprintf(outStr, "%qdK", (long long)val / UNIT_ONE_KIBIBYTE); - } else - sprintf(outStr, "%qd", (long long)val); -} -#endif - int32_t taosStrHumanToInt32(const char* str, int32_t* out) { - int64_t res; + int64_t res; int32_t code = parseCfgIntWithUnit(str, &res); if (code == TSDB_CODE_SUCCESS) { if (res < INT32_MIN || res > INT32_MAX) { @@ -131,16 +112,3 @@ int32_t taosStrHumanToInt32(const char* str, int32_t* out) { } return code; } - -#ifdef BUILD_NO_CALL -void taosInt32ToHumanStr(int32_t val, char* outStr) { - if (((val >= UNIT_ONE_GIBIBYTE) || (-val >= UNIT_ONE_GIBIBYTE)) && ((val % UNIT_ONE_GIBIBYTE) == 0)) { - sprintf(outStr, "%qdG", (long long)val / UNIT_ONE_GIBIBYTE); - } else if (((val >= UNIT_ONE_MEBIBYTE) || (-val >= UNIT_ONE_MEBIBYTE)) && ((val % UNIT_ONE_MEBIBYTE) == 0)) { - sprintf(outStr, "%qdM", (long long)val / UNIT_ONE_MEBIBYTE); - } else if (((val >= UNIT_ONE_KIBIBYTE) || (-val >= UNIT_ONE_KIBIBYTE)) && ((val % UNIT_ONE_KIBIBYTE) == 0)) { - sprintf(outStr, "%qdK", (long long)val / UNIT_ONE_KIBIBYTE); - } else - sprintf(outStr, "%qd", (long long)val); -} -#endif