diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index 563c14411d..e861f1c0e8 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -66,6 +66,7 @@ int32_t taosGetConfigObjSize(SConfigObj *obj) { if (obj->dtype == CFG_DTYPE_STRING || obj->dtype == CFG_DTYPE_DIR || obj->dtype == CFG_DTYPE_LOCALE || obj->dtype == CFG_DTYPE_CHARSET || obj->dtype == CFG_DTYPE_TIMEZONE) { if (obj->str != NULL) { + size += sizeof(int32_t); size += strlen(obj->str) + 1; } } diff --git a/source/dnode/mnode/impl/src/mndDef.c b/source/dnode/mnode/impl/src/mndDef.c index 0ed136e35b..3741a8bae0 100644 --- a/source/dnode/mnode/impl/src/mndDef.c +++ b/source/dnode/mnode/impl/src/mndDef.c @@ -758,7 +758,7 @@ SConfigObj *mndInitConfigObj(SConfigItem *pItem) { case CFG_DTYPE_LOCALE: case CFG_DTYPE_CHARSET: case CFG_DTYPE_TIMEZONE: - pObj->str = pItem->str; + pObj->str = taosStrdup(pItem->str); break; } return pObj; diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index da9b50e934..dfe0c1e933 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -1145,7 +1145,10 @@ SArray *initVariablesFromItems(SArray *pItems) { strcpy(info.category, "unknown"); break; } - taosArrayPush(pInfos, &info); + if (NULL == taosArrayPush(pInfos, &info)) { + mError("failed to push info to array while init variables from items,since %s", tstrerror(terrno)); + return NULL; + } } return pInfos;