[TD-5534]<fix>:fix the coverity high risk of client
This commit is contained in:
parent
a960f0ff79
commit
eaed6da8ce
|
@ -135,7 +135,7 @@ int32_t tscCreateGlobalMerger(tExtMemBuffer **pMemBuffer, int32_t numOfBuffer, t
|
||||||
SLocalDataSource *ds = (SLocalDataSource *)malloc(sizeof(SLocalDataSource) + pMemBuffer[0]->pageSize);
|
SLocalDataSource *ds = (SLocalDataSource *)malloc(sizeof(SLocalDataSource) + pMemBuffer[0]->pageSize);
|
||||||
if (ds == NULL) {
|
if (ds == NULL) {
|
||||||
tscError("0x%"PRIx64" failed to create merge structure", id);
|
tscError("0x%"PRIx64" failed to create merge structure", id);
|
||||||
tfree(pMerger);
|
tfree(*pMerger);
|
||||||
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,6 +443,10 @@ int32_t tscCreateGlobalMergerEnv(SQueryInfo *pQueryInfo, tExtMemBuffer ***pMemBu
|
||||||
}
|
}
|
||||||
|
|
||||||
pModel = createColumnModel(pSchema, (int32_t)size, capacity);
|
pModel = createColumnModel(pSchema, (int32_t)size, capacity);
|
||||||
|
if (pModel == NULL){
|
||||||
|
tfree(pSchema);
|
||||||
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
tfree(pSchema);
|
tfree(pSchema);
|
||||||
|
|
||||||
int32_t pg = DEFAULT_PAGE_SIZE;
|
int32_t pg = DEFAULT_PAGE_SIZE;
|
||||||
|
@ -458,6 +462,7 @@ int32_t tscCreateGlobalMergerEnv(SQueryInfo *pQueryInfo, tExtMemBuffer ***pMemBu
|
||||||
}
|
}
|
||||||
|
|
||||||
if (createOrderDescriptor(pOrderDesc, pQueryInfo, pModel) != TSDB_CODE_SUCCESS) {
|
if (createOrderDescriptor(pOrderDesc, pQueryInfo, pModel) != TSDB_CODE_SUCCESS) {
|
||||||
|
tfree(pModel);
|
||||||
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -963,8 +963,14 @@ int taos_load_table_info(TAOS *taos, const char *tableNameList) {
|
||||||
|
|
||||||
strtolower(str, tableNameList);
|
strtolower(str, tableNameList);
|
||||||
SArray* plist = taosArrayInit(4, POINTER_BYTES);
|
SArray* plist = taosArrayInit(4, POINTER_BYTES);
|
||||||
|
if (plist == NULL) {
|
||||||
|
tfree(str);
|
||||||
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
SArray* vgroupList = taosArrayInit(4, POINTER_BYTES);
|
SArray* vgroupList = taosArrayInit(4, POINTER_BYTES);
|
||||||
if (plist == NULL || vgroupList == NULL) {
|
if (vgroupList == NULL) {
|
||||||
|
taosArrayDestroy(plist);
|
||||||
tfree(str);
|
tfree(str);
|
||||||
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
@ -980,6 +986,8 @@ int taos_load_table_info(TAOS *taos, const char *tableNameList) {
|
||||||
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
tscFreeSqlObj(pSql);
|
tscFreeSqlObj(pSql);
|
||||||
|
taosArrayDestroyEx(plist);
|
||||||
|
taosArrayDestroyEx(vgroupList);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2476,8 +2476,9 @@ int32_t tscHandleMasterSTableQuery(SSqlObj *pSql) {
|
||||||
pState->states = calloc(pState->numOfSub, sizeof(*pState->states));
|
pState->states = calloc(pState->numOfSub, sizeof(*pState->states));
|
||||||
if (pState->states == NULL) {
|
if (pState->states == NULL) {
|
||||||
pRes->code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
pRes->code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
|
tscDestroyGlobalMergerEnv(pMemoryBuf, pDesc,pState->numOfSub);
|
||||||
|
|
||||||
tscAsyncResultOnError(pSql);
|
tscAsyncResultOnError(pSql);
|
||||||
tfree(pMemoryBuf);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1246,6 +1246,10 @@ void handleDownstreamOperator(SSqlObj** pSqlObjList, int32_t numOfUpstream, SQue
|
||||||
}
|
}
|
||||||
|
|
||||||
pSourceOperator = createJoinOperatorInfo(p, px->numOfTables, schema, num);
|
pSourceOperator = createJoinOperatorInfo(p, px->numOfTables, schema, num);
|
||||||
|
|
||||||
|
for(int32_t i = 0; i < px->numOfTables; ++i) {
|
||||||
|
destroyOperatorInfo(p[i]);
|
||||||
|
}
|
||||||
tfree(p);
|
tfree(p);
|
||||||
} else {
|
} else {
|
||||||
size_t num = taosArrayGetSize(px->colList);
|
size_t num = taosArrayGetSize(px->colList);
|
||||||
|
@ -4368,7 +4372,7 @@ int32_t tscCreateTableMetaFromSTableMeta(STableMeta* pChild, const char* name, v
|
||||||
pChild->sversion = p->sversion;
|
pChild->sversion = p->sversion;
|
||||||
pChild->tversion = p->tversion;
|
pChild->tversion = p->tversion;
|
||||||
|
|
||||||
memcpy(&pChild->tableInfo, &p->tableInfo, sizeof(STableInfo));
|
memcpy(&pChild->tableInfo, &p->tableInfo, sizeof(STableComInfo));
|
||||||
int32_t total = pChild->tableInfo.numOfColumns + pChild->tableInfo.numOfTags;
|
int32_t total = pChild->tableInfo.numOfColumns + pChild->tableInfo.numOfTags;
|
||||||
|
|
||||||
memcpy(pChild->schema, p->schema, sizeof(SSchema) *total);
|
memcpy(pChild->schema, p->schema, sizeof(SSchema) *total);
|
||||||
|
@ -4719,7 +4723,7 @@ static int32_t doAddTableName(char* nextStr, char** str, SArray* pNameArray, SSq
|
||||||
int32_t len = 0;
|
int32_t len = 0;
|
||||||
|
|
||||||
if (nextStr == NULL) {
|
if (nextStr == NULL) {
|
||||||
strncpy(tablename, *str, TSDB_TABLE_FNAME_LEN);
|
strncpy(tablename, *str, TSDB_TABLE_FNAME_LEN - 1);
|
||||||
len = (int32_t) strlen(tablename);
|
len = (int32_t) strlen(tablename);
|
||||||
} else {
|
} else {
|
||||||
len = (int32_t)(nextStr - (*str));
|
len = (int32_t)(nextStr - (*str));
|
||||||
|
|
|
@ -578,6 +578,7 @@ void doCompactSDataBlock(SSDataBlock* pBlock, int32_t numOfRows, int8_t* p);
|
||||||
SSDataBlock* createOutputBuf(SExprInfo* pExpr, int32_t numOfOutput, int32_t numOfRows);
|
SSDataBlock* createOutputBuf(SExprInfo* pExpr, int32_t numOfOutput, int32_t numOfRows);
|
||||||
void* destroyOutputBuf(SSDataBlock* pBlock);
|
void* destroyOutputBuf(SSDataBlock* pBlock);
|
||||||
void* doDestroyFilterInfo(SSingleColumnFilterInfo* pFilterInfo, int32_t numOfFilterCols);
|
void* doDestroyFilterInfo(SSingleColumnFilterInfo* pFilterInfo, int32_t numOfFilterCols);
|
||||||
|
void destroyOperatorInfo(SOperatorInfo* pOperator);
|
||||||
|
|
||||||
void setInputDataBlock(SOperatorInfo* pOperator, SQLFunctionCtx* pCtx, SSDataBlock* pBlock, int32_t order);
|
void setInputDataBlock(SOperatorInfo* pOperator, SQLFunctionCtx* pCtx, SSDataBlock* pBlock, int32_t order);
|
||||||
int32_t getNumOfResult(SQueryRuntimeEnv *pRuntimeEnv, SQLFunctionCtx* pCtx, int32_t numOfOutput);
|
int32_t getNumOfResult(SQueryRuntimeEnv *pRuntimeEnv, SQLFunctionCtx* pCtx, int32_t numOfOutput);
|
||||||
|
|
|
@ -191,8 +191,6 @@ static void destroyTagScanOperatorInfo(void* param, int32_t numOfOutput);
|
||||||
static void destroySWindowOperatorInfo(void* param, int32_t numOfOutput);
|
static void destroySWindowOperatorInfo(void* param, int32_t numOfOutput);
|
||||||
static void destroyStateWindowOperatorInfo(void* param, int32_t numOfOutput);
|
static void destroyStateWindowOperatorInfo(void* param, int32_t numOfOutput);
|
||||||
static void destroyAggOperatorInfo(void* param, int32_t numOfOutput);
|
static void destroyAggOperatorInfo(void* param, int32_t numOfOutput);
|
||||||
static void destroyOperatorInfo(SOperatorInfo* pOperator);
|
|
||||||
|
|
||||||
|
|
||||||
static int32_t doCopyToSDataBlock(SQueryRuntimeEnv* pRuntimeEnv, SGroupResInfo* pGroupResInfo, int32_t orderType, SSDataBlock* pBlock);
|
static int32_t doCopyToSDataBlock(SQueryRuntimeEnv* pRuntimeEnv, SGroupResInfo* pGroupResInfo, int32_t orderType, SSDataBlock* pBlock);
|
||||||
|
|
||||||
|
@ -3563,6 +3561,7 @@ STableQueryInfo* createTmpTableQueryInfo(STimeWindow win) {
|
||||||
int32_t initialSize = 16;
|
int32_t initialSize = 16;
|
||||||
int32_t code = initResultRowInfo(&pTableQueryInfo->resInfo, initialSize, TSDB_DATA_TYPE_INT);
|
int32_t code = initResultRowInfo(&pTableQueryInfo->resInfo, initialSize, TSDB_DATA_TYPE_INT);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
tfree(pTableQueryInfo);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5945,7 +5944,7 @@ static int32_t getNumOfScanTimes(SQueryAttr* pQueryAttr) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void destroyOperatorInfo(SOperatorInfo* pOperator) {
|
void destroyOperatorInfo(SOperatorInfo* pOperator) {
|
||||||
if (pOperator == NULL) {
|
if (pOperator == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -7241,9 +7240,7 @@ void destroyUdfInfo(SUdfInfo* pUdfInfo) {
|
||||||
tfree(pUdfInfo);
|
tfree(pUdfInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char* getUdfFuncName(char* name, int type) {
|
static char* getUdfFuncName(char* funcname, char* name, int type) {
|
||||||
char* funcname = calloc(1, TSDB_FUNCTIONS_NAME_MAX_LENGTH + 10);
|
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TSDB_UDF_FUNC_NORMAL:
|
case TSDB_UDF_FUNC_NORMAL:
|
||||||
strcpy(funcname, name);
|
strcpy(funcname, name);
|
||||||
|
@ -7314,19 +7311,20 @@ int32_t initUdfInfo(SUdfInfo* pUdfInfo) {
|
||||||
return TSDB_CODE_QRY_SYS_ERROR;
|
return TSDB_CODE_QRY_SYS_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
pUdfInfo->funcs[TSDB_UDF_FUNC_NORMAL] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(pUdfInfo->name, TSDB_UDF_FUNC_NORMAL));
|
char funcname[TSDB_FUNCTIONS_NAME_MAX_LENGTH + 10] = {0};
|
||||||
|
pUdfInfo->funcs[TSDB_UDF_FUNC_NORMAL] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(funcname, pUdfInfo->name, TSDB_UDF_FUNC_NORMAL));
|
||||||
if (NULL == pUdfInfo->funcs[TSDB_UDF_FUNC_NORMAL]) {
|
if (NULL == pUdfInfo->funcs[TSDB_UDF_FUNC_NORMAL]) {
|
||||||
return TSDB_CODE_QRY_SYS_ERROR;
|
return TSDB_CODE_QRY_SYS_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
pUdfInfo->funcs[TSDB_UDF_FUNC_INIT] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(pUdfInfo->name, TSDB_UDF_FUNC_INIT));
|
pUdfInfo->funcs[TSDB_UDF_FUNC_INIT] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(funcname, pUdfInfo->name, TSDB_UDF_FUNC_INIT));
|
||||||
|
|
||||||
if (pUdfInfo->funcType == TSDB_UDF_TYPE_AGGREGATE) {
|
if (pUdfInfo->funcType == TSDB_UDF_TYPE_AGGREGATE) {
|
||||||
pUdfInfo->funcs[TSDB_UDF_FUNC_FINALIZE] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(pUdfInfo->name, TSDB_UDF_FUNC_FINALIZE));
|
pUdfInfo->funcs[TSDB_UDF_FUNC_FINALIZE] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(funcname, pUdfInfo->name, TSDB_UDF_FUNC_FINALIZE));
|
||||||
pUdfInfo->funcs[TSDB_UDF_FUNC_MERGE] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(pUdfInfo->name, TSDB_UDF_FUNC_MERGE));
|
pUdfInfo->funcs[TSDB_UDF_FUNC_MERGE] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(funcname, pUdfInfo->name, TSDB_UDF_FUNC_MERGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
pUdfInfo->funcs[TSDB_UDF_FUNC_DESTROY] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(pUdfInfo->name, TSDB_UDF_FUNC_DESTROY));
|
pUdfInfo->funcs[TSDB_UDF_FUNC_DESTROY] = taosLoadSym(pUdfInfo->handle, getUdfFuncName(funcname, pUdfInfo->name, TSDB_UDF_FUNC_DESTROY));
|
||||||
|
|
||||||
if (pUdfInfo->funcs[TSDB_UDF_FUNC_INIT]) {
|
if (pUdfInfo->funcs[TSDB_UDF_FUNC_INIT]) {
|
||||||
return (*(udfInitFunc)pUdfInfo->funcs[TSDB_UDF_FUNC_INIT])(&pUdfInfo->init);
|
return (*(udfInitFunc)pUdfInfo->funcs[TSDB_UDF_FUNC_INIT])(&pUdfInfo->init);
|
||||||
|
@ -7398,10 +7396,12 @@ int32_t createQueryFunc(SQueriedTableInfo* pTableInfo, int32_t numOfOutput, SExp
|
||||||
int32_t j = getColumnIndexInSource(pTableInfo, &pExprs[i].base, pTagCols);
|
int32_t j = getColumnIndexInSource(pTableInfo, &pExprs[i].base, pTagCols);
|
||||||
if (TSDB_COL_IS_TAG(pExprs[i].base.colInfo.flag)) {
|
if (TSDB_COL_IS_TAG(pExprs[i].base.colInfo.flag)) {
|
||||||
if (j < TSDB_TBNAME_COLUMN_INDEX || j >= pTableInfo->numOfTags) {
|
if (j < TSDB_TBNAME_COLUMN_INDEX || j >= pTableInfo->numOfTags) {
|
||||||
|
tfree(pExprs);
|
||||||
return TSDB_CODE_QRY_INVALID_MSG;
|
return TSDB_CODE_QRY_INVALID_MSG;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (j < PRIMARYKEY_TIMESTAMP_COL_INDEX || j >= pTableInfo->numOfCols) {
|
if (j < PRIMARYKEY_TIMESTAMP_COL_INDEX || j >= pTableInfo->numOfCols) {
|
||||||
|
tfree(pExprs);
|
||||||
return TSDB_CODE_QRY_INVALID_MSG;
|
return TSDB_CODE_QRY_INVALID_MSG;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7421,6 +7421,7 @@ int32_t createQueryFunc(SQueriedTableInfo* pTableInfo, int32_t numOfOutput, SExp
|
||||||
int32_t ret = cloneExprFilterInfo(&pExprs[i].base.flist.filterInfo, pExprMsg[i]->flist.filterInfo,
|
int32_t ret = cloneExprFilterInfo(&pExprs[i].base.flist.filterInfo, pExprMsg[i]->flist.filterInfo,
|
||||||
pExprMsg[i]->flist.numOfFilters);
|
pExprMsg[i]->flist.numOfFilters);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
tfree(pExprs);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,6 +222,7 @@ SArray* createQueryPlanImpl(SQueryInfo* pQueryInfo) {
|
||||||
|
|
||||||
if (pQueryInfo->numOfTables > 1) { // it is a join query
|
if (pQueryInfo->numOfTables > 1) { // it is a join query
|
||||||
// 1. separate the select clause according to table
|
// 1. separate the select clause according to table
|
||||||
|
taosArrayDestroy(upstream);
|
||||||
upstream = taosArrayInit(5, POINTER_BYTES);
|
upstream = taosArrayInit(5, POINTER_BYTES);
|
||||||
|
|
||||||
for(int32_t i = 0; i < pQueryInfo->numOfTables; ++i) {
|
for(int32_t i = 0; i < pQueryInfo->numOfTables; ++i) {
|
||||||
|
@ -231,6 +232,7 @@ SArray* createQueryPlanImpl(SQueryInfo* pQueryInfo) {
|
||||||
SArray* exprList = taosArrayInit(4, POINTER_BYTES);
|
SArray* exprList = taosArrayInit(4, POINTER_BYTES);
|
||||||
if (tscExprCopy(exprList, pQueryInfo->exprList, uid, true) != 0) {
|
if (tscExprCopy(exprList, pQueryInfo->exprList, uid, true) != 0) {
|
||||||
terrno = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
terrno = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
|
tscExprDestroy(exprList);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,6 +247,8 @@ SArray* createQueryPlanImpl(SQueryInfo* pQueryInfo) {
|
||||||
|
|
||||||
// 4. add the projection query node
|
// 4. add the projection query node
|
||||||
SQueryNode* pNode = doAddTableColumnNode(pQueryInfo, pTableMetaInfo, &info, exprList, tableColumnList);
|
SQueryNode* pNode = doAddTableColumnNode(pQueryInfo, pTableMetaInfo, &info, exprList, tableColumnList);
|
||||||
|
tscColumnListDestroy(tableColumnList);
|
||||||
|
tscExprDestroy(exprList);
|
||||||
taosArrayPush(upstream, &pNode);
|
taosArrayPush(upstream, &pNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue