fix: config read issue

This commit is contained in:
dapan1121 2024-07-25 13:48:22 +08:00
parent 0f98b0702d
commit 3ac26cc32a
2 changed files with 6 additions and 5 deletions

View File

@ -866,9 +866,10 @@ int64_t taosLSeekFile(TdFilePtr pFile, int64_t offset, int32_t whence) {
if (code) { if (code) {
terrno = code; terrno = code;
return terrno;
} }
return code; return ret;
} }
int32_t taosFStatFile(TdFilePtr pFile, int64_t *size, int32_t *mtime) { int32_t taosFStatFile(TdFilePtr pFile, int64_t *size, int32_t *mtime) {

View File

@ -1270,7 +1270,8 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) {
return -1; return -1;
} }
size_t fileSize = taosLSeekFile(pFile, 0, SEEK_END); size_t fileSize = taosLSeekFile(pFile, 0, SEEK_END);
char *buf = taosMemoryMalloc(fileSize); char *buf = taosMemoryMalloc(fileSize + 1);
buf[fileSize] = 0;
taosLSeekFile(pFile, 0, SEEK_SET); taosLSeekFile(pFile, 0, SEEK_SET);
if (taosReadFile(pFile, buf, fileSize) <= 0) { if (taosReadFile(pFile, buf, fileSize) <= 0) {
taosCloseFile(&pFile); taosCloseFile(&pFile);
@ -1296,16 +1297,14 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) {
if (item == NULL) break; if (item == NULL) break;
char *itemName = NULL, *itemValueString = NULL; char *itemName = NULL, *itemValueString = NULL;
tjsonGetObjectName(item, &itemName); tjsonGetObjectName(item, &itemName);
tjsonGetObjectName(item, &itemName);
tjsonGetObjectValueString(item, &itemValueString); tjsonGetObjectValueString(item, &itemValueString);
if (itemValueString != NULL && itemName != NULL) { if (itemValueString != NULL && itemName != NULL) {
size_t itemNameLen = strlen(itemName); size_t itemNameLen = strlen(itemName);
size_t itemValueStringLen = strlen(itemValueString); size_t itemValueStringLen = strlen(itemValueString);
cfgLineBuf = taosMemoryMalloc(itemNameLen + itemValueStringLen + 2); cfgLineBuf = taosMemoryRealloc(cfgLineBuf, itemNameLen + itemValueStringLen + 3);
memcpy(cfgLineBuf, itemName, itemNameLen); memcpy(cfgLineBuf, itemName, itemNameLen);
cfgLineBuf[itemNameLen] = ' '; cfgLineBuf[itemNameLen] = ' ';
memcpy(&cfgLineBuf[itemNameLen + 1], itemValueString, itemValueStringLen); memcpy(&cfgLineBuf[itemNameLen + 1], itemValueString, itemValueStringLen);
cfgLineBuf[itemNameLen + itemValueStringLen + 1] = '\0';
paGetToken(cfgLineBuf, &name, &olen); paGetToken(cfgLineBuf, &name, &olen);
if (olen == 0) continue; if (olen == 0) continue;
@ -1344,6 +1343,7 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) {
return -1; return -1;
} }
taosMemoryFree(cfgLineBuf);
uInfo("load from apoll url not implemented yet"); uInfo("load from apoll url not implemented yet");
return 0; return 0;
} }