fix: set pointer to null after free
This commit is contained in:
parent
61ccba3ce7
commit
057d388451
|
@ -1569,7 +1569,7 @@ int32_t udfcGetUdfTaskResultFromUvTask(SClientUdfTask *task, SClientUvTaskNode *
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: the call buffer is setup and freed by udf invocation
|
// TODO: the call buffer is setup and freed by udf invocation
|
||||||
taosMemoryFree(uvTask->rspBuf.base);
|
taosMemoryFreeClear(uvTask->rspBuf.base);
|
||||||
} else {
|
} else {
|
||||||
code = uvTask->errCode;
|
code = uvTask->errCode;
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
|
@ -1794,7 +1794,7 @@ int32_t udfcInitializeUvTask(SClientUdfTask *task, int8_t uvTaskType, SClientUvT
|
||||||
}
|
}
|
||||||
if (uv_sem_init(&uvTask->taskSem, 0) != 0) {
|
if (uv_sem_init(&uvTask->taskSem, 0) != 0) {
|
||||||
if (uvTaskType == UV_TASK_REQ_RSP) {
|
if (uvTaskType == UV_TASK_REQ_RSP) {
|
||||||
taosMemoryFree(uvTask->reqBuf.base);
|
taosMemoryFreeClear(uvTask->reqBuf.base);
|
||||||
}
|
}
|
||||||
fnError("udfc create uv task, init semaphore failed.");
|
fnError("udfc create uv task, init semaphore failed.");
|
||||||
return TSDB_CODE_UDF_UV_EXEC_FAILURE;
|
return TSDB_CODE_UDF_UV_EXEC_FAILURE;
|
||||||
|
|
|
@ -531,12 +531,14 @@ void udfdDeinitScriptPlugins() {
|
||||||
if (plugin != NULL) {
|
if (plugin != NULL) {
|
||||||
udfdDeinitPythonPlugin(plugin);
|
udfdDeinitPythonPlugin(plugin);
|
||||||
taosMemoryFree(plugin);
|
taosMemoryFree(plugin);
|
||||||
|
global.scriptPlugins[TSDB_FUNC_SCRIPT_PYTHON] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
plugin = global.scriptPlugins[TSDB_FUNC_SCRIPT_BIN_LIB];
|
plugin = global.scriptPlugins[TSDB_FUNC_SCRIPT_BIN_LIB];
|
||||||
if (plugin != NULL) {
|
if (plugin != NULL) {
|
||||||
udfdDeinitCPlugin(plugin);
|
udfdDeinitCPlugin(plugin);
|
||||||
taosMemoryFree(plugin);
|
taosMemoryFree(plugin);
|
||||||
|
global.scriptPlugins[TSDB_FUNC_SCRIPT_BIN_LIB] = NULL;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -551,7 +553,7 @@ void udfdProcessRequest(uv_work_t *req) {
|
||||||
SUdfRequest request = {0};
|
SUdfRequest request = {0};
|
||||||
if(decodeUdfRequest(uvUdf->input.base, &request) == NULL)
|
if(decodeUdfRequest(uvUdf->input.base, &request) == NULL)
|
||||||
{
|
{
|
||||||
taosMemoryFree(uvUdf->input.base);
|
taosMemoryFreeClear(uvUdf->input.base);
|
||||||
fnError("udf request decode failed");
|
fnError("udf request decode failed");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -783,7 +785,7 @@ _send:
|
||||||
|
|
||||||
uvUdf->output = uv_buf_init(bufBegin, len);
|
uvUdf->output = uv_buf_init(bufBegin, len);
|
||||||
|
|
||||||
taosMemoryFree(uvUdf->input.base);
|
taosMemoryFreeClear(uvUdf->input.base);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -969,7 +971,7 @@ _exit:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
taosMemoryFree(uvUdf->input.base);
|
taosMemoryFreeClear(uvUdf->input.base);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1668,7 +1670,7 @@ static void udfdGlobalDataDeinit() {
|
||||||
taosHashCleanup(global.udfsHash);
|
taosHashCleanup(global.udfsHash);
|
||||||
uv_mutex_destroy(&global.udfsMutex);
|
uv_mutex_destroy(&global.udfsMutex);
|
||||||
uv_mutex_destroy(&global.scriptPluginsMutex);
|
uv_mutex_destroy(&global.scriptPluginsMutex);
|
||||||
taosMemoryFree(global.loop);
|
taosMemoryFreeClear(global.loop);
|
||||||
fnInfo("udfd global data deinit");
|
fnInfo("udfd global data deinit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -674,6 +674,7 @@ int32_t cloneSVreateTbReq(SVCreateTbReq* pSrc, SVCreateTbReq** pDst) {
|
||||||
_exit:
|
_exit:
|
||||||
tdDestroySVCreateTbReq(*pDst);
|
tdDestroySVCreateTbReq(*pDst);
|
||||||
taosMemoryFree(*pDst);
|
taosMemoryFree(*pDst);
|
||||||
|
*pDst = NULL;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue