From 9dcbb0436acfea50997453da9f5074efd5871d5a Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Sun, 28 Jul 2024 12:57:54 +0800 Subject: [PATCH] fix(util): fix the invalid read. --- source/util/src/tconfig.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index 55bf9a5df2..aa6f4e7941 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -1275,18 +1275,22 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { char *itemName = NULL, *itemValueString = NULL; TAOS_CHECK_GOTO(tjsonGetObjectName(item, &itemName), NULL, _err_json); TAOS_CHECK_GOTO(tjsonGetObjectValueString(item, &itemValueString), NULL, _err_json); + if (itemValueString != NULL && itemName != NULL) { size_t itemNameLen = strlen(itemName); size_t itemValueStringLen = strlen(itemValueString); - cfgLineBuf = taosMemoryRealloc(cfgLineBuf, itemNameLen + itemValueStringLen + 3); - if (NULL == cfgLineBuf) { + void* px = taosMemoryRealloc(cfgLineBuf, itemNameLen + itemValueStringLen + 3); + if (NULL == px) { code = TSDB_CODE_OUT_OF_MEMORY; goto _err_json; } + cfgLineBuf = px; + memcpy(cfgLineBuf, itemName, itemNameLen); cfgLineBuf[itemNameLen] = ' '; memcpy(&cfgLineBuf[itemNameLen + 1], itemValueString, itemValueStringLen); + cfgLineBuf[itemNameLen + itemValueStringLen + 2] = 0; paGetToken(cfgLineBuf, &name, &olen); if (olen == 0) continue;