diff --git a/source/os/src/osFile.c b/source/os/src/osFile.c index d94bddcea4..ea13b45e40 100644 --- a/source/os/src/osFile.c +++ b/source/os/src/osFile.c @@ -866,9 +866,10 @@ int64_t taosLSeekFile(TdFilePtr pFile, int64_t offset, int32_t whence) { if (code) { terrno = code; + return terrno; } - return code; + return ret; } int32_t taosFStatFile(TdFilePtr pFile, int64_t *size, int32_t *mtime) { diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index 268b0b8497..d4668e07c4 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -1270,7 +1270,8 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { return -1; } 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); if (taosReadFile(pFile, buf, fileSize) <= 0) { taosCloseFile(&pFile); @@ -1296,16 +1297,14 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { if (item == NULL) break; char *itemName = NULL, *itemValueString = NULL; tjsonGetObjectName(item, &itemName); - tjsonGetObjectName(item, &itemName); tjsonGetObjectValueString(item, &itemValueString); if (itemValueString != NULL && itemName != NULL) { size_t itemNameLen = strlen(itemName); size_t itemValueStringLen = strlen(itemValueString); - cfgLineBuf = taosMemoryMalloc(itemNameLen + itemValueStringLen + 2); + cfgLineBuf = taosMemoryRealloc(cfgLineBuf, itemNameLen + itemValueStringLen + 3); memcpy(cfgLineBuf, itemName, itemNameLen); cfgLineBuf[itemNameLen] = ' '; memcpy(&cfgLineBuf[itemNameLen + 1], itemValueString, itemValueStringLen); - cfgLineBuf[itemNameLen + itemValueStringLen + 1] = '\0'; paGetToken(cfgLineBuf, &name, &olen); if (olen == 0) continue; @@ -1344,6 +1343,7 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { return -1; } + taosMemoryFree(cfgLineBuf); uInfo("load from apoll url not implemented yet"); return 0; }