This is an automated email from the ASF dual-hosted git repository.
gabriellee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 70f5a26f44e [pipelineX](fix) Fix heap-use-after-free for AggSource
dependency (#29272)
70f5a26f44e is described below
commit 70f5a26f44ed6491471f4563805e17badc639b3e
Author: Gabriel <[email protected]>
AuthorDate: Fri Dec 29 12:50:41 2023 +0800
[pipelineX](fix) Fix heap-use-after-free for AggSource dependency (#29272)
---
be/src/pipeline/pipeline_x/dependency.h | 4 ++--
be/src/pipeline/pipeline_x/operator.cpp | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/be/src/pipeline/pipeline_x/dependency.h
b/be/src/pipeline/pipeline_x/dependency.h
index 116a9f3e87c..a0504d17886 100644
--- a/be/src/pipeline/pipeline_x/dependency.h
+++ b/be/src/pipeline/pipeline_x/dependency.h
@@ -56,8 +56,8 @@ static constexpr auto TIME_UNIT_DEPENDENCY_LOG = 30 * 1000L *
1000L * 1000L;
static_assert(TIME_UNIT_DEPENDENCY_LOG < SLOW_DEPENDENCY_THRESHOLD);
struct BasicSharedState {
- Dependency* source_dep = nullptr;
- Dependency* sink_dep = nullptr;
+ DependencySPtr source_dep = nullptr;
+ DependencySPtr sink_dep = nullptr;
virtual Status close(RuntimeState* state) { return Status::OK(); }
virtual ~BasicSharedState() = default;
diff --git a/be/src/pipeline/pipeline_x/operator.cpp
b/be/src/pipeline/pipeline_x/operator.cpp
index c5dbd34619f..7d40e96f38c 100644
--- a/be/src/pipeline/pipeline_x/operator.cpp
+++ b/be/src/pipeline/pipeline_x/operator.cpp
@@ -336,15 +336,15 @@ Status
PipelineXLocalState<DependencyType>::init(RuntimeState* state, LocalState
_shared_state =
(typename
DependencyType::SharedState*)_dependency->shared_state().get();
- _shared_state->source_dep = _dependency;
- _shared_state->sink_dep = deps.front().get();
+ _shared_state->source_dep = info.dependency;
+ _shared_state->sink_dep = deps.front();
} else if constexpr (!is_fake_shared) {
_dependency->set_shared_state(deps.front()->shared_state());
_shared_state =
(typename
DependencyType::SharedState*)_dependency->shared_state().get();
- _shared_state->source_dep = _dependency;
- _shared_state->sink_dep = deps.front().get();
+ _shared_state->source_dep = info.dependency;
+ _shared_state->sink_dep = deps.front();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]