fix: set pointer to null after free

This commit is contained in:
factosea 2024-11-12 17:59:58 +08:00
parent 61ccba3ce7
commit 057d388451
3 changed files with 9 additions and 6 deletions

View File

@ -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;

View File

@ -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");
} }

View File

@ -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;
} }