Fix crash.

This commit is contained in:
xiao-77 2025-02-07 19:27:27 +08:00
parent 72f228fa97
commit cb50baddde
1 changed files with 34 additions and 4 deletions

View File

@ -109,11 +109,41 @@ int32_t cfgUpdateFromArray(SConfig *pCfg, SArray *pArgs) {
(void)taosThreadMutexUnlock(&pCfg->lock);
TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND);
}
switch (pItemNew->dtype) {
case CFG_DTYPE_BOOL:
pItemOld->bval = pItemNew->bval;
break;
case CFG_DTYPE_INT32:
pItemOld->i32 = pItemNew->i32;
break;
case CFG_DTYPE_INT64:
pItemOld->i64 = pItemNew->i64;
break;
case CFG_DTYPE_FLOAT:
case CFG_DTYPE_DOUBLE:
pItemOld->fval = pItemNew->fval;
break;
case CFG_DTYPE_STRING:
case CFG_DTYPE_DIR:
taosMemoryFree(pItemOld->str);
pItemOld->str = taosStrdup(pItemNew->str);
if (pItemOld->str == NULL) {
(void)taosThreadMutexUnlock(&pCfg->lock);
TAOS_RETURN(terrno);
}
break;
case CFG_DTYPE_LOCALE:
case CFG_DTYPE_CHARSET:
case CFG_DTYPE_TIMEZONE:
code = cfgSetItemVal(pItemOld, pItemNew->name, pItemNew->str, pItemNew->stype);
if (code != 0) {
if (code != TSDB_CODE_SUCCESS) {
(void)taosThreadMutexUnlock(&pCfg->lock);
TAOS_RETURN(code);
}
break;
default:
break;
}
(void)taosThreadMutexUnlock(&pCfg->lock);
}