This repository has been archived by the owner on Jun 23, 2022. It is now read-only.
fix(asan): heap-use-after-free in simple_lb_cure_test.cpp #375
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issue: #364
The reason is
svc->set_filter(default_filter)
free the heap which is located bysvc->set_filter([&](const dsn::rpc_address &target, dsn::message_ex *req) -> cur_ptr {...});
, and the variableproposal_sent
is also freed, however, it is still used in L435.Related code:
rdsn/src/dist/replication/test/meta_test/unit_test/simple_lb_cure_test.cpp
Line 435 in 1e5d529
rdsn/src/dist/replication/test/meta_test/unit_test/simple_lb_cure_test.cpp
Lines 423 to 437 in 1e5d529
Solution
proposal_sent=true
beforesvc->set_filter(default_filter)