From 3fd6770c81f5e1da6ae56a3b41d740fd9dd4ff91 Mon Sep 17 00:00:00 2001 From: Yihao Deng Date: Mon, 29 Apr 2024 05:52:54 +0000 Subject: [PATCH] avoid invalid read --- source/libs/stream/src/streamCheckpoint.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/libs/stream/src/streamCheckpoint.c b/source/libs/stream/src/streamCheckpoint.c index e9dfbf7693..0de7e83871 100644 --- a/source/libs/stream/src/streamCheckpoint.c +++ b/source/libs/stream/src/streamCheckpoint.c @@ -25,6 +25,7 @@ typedef struct { SStreamTask* pTask; int64_t dbRefId; + void* pMeta; } SAsyncUploadArg; static int32_t downloadCheckpointDataByName(const char* id, const char* fname, const char* dstName); @@ -437,7 +438,7 @@ int32_t uploadCheckpointData(void* param) { return -1; } - if ((code = taskDbGenChkpUploadData(arg->pTask->pBackend, arg->pTask->pMeta->bkdChkptMgt, arg->chkpId, + if ((code = taskDbGenChkpUploadData(arg->pTask->pBackend, ((SStreamMeta*)arg->pMeta)->bkdChkptMgt, arg->chkpId, (int8_t)(arg->type), &path, toDelFiles)) != 0) { stError("s-task:%s failed to gen upload checkpoint:%" PRId64 "", taskStr, arg->chkpId); } @@ -489,6 +490,7 @@ int32_t streamTaskRemoteBackupCheckpoint(SStreamTask* pTask, int64_t chkpId, cha arg->chkpId = chkpId; arg->pTask = pTask; arg->dbRefId = taskGetDBRef(pTask->pBackend); + arg->pMeta = pTask->pMeta; return streamMetaAsyncExec(pTask->pMeta, uploadCheckpointData, arg, NULL); }