fix: delete validator before clear #2244
Open
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.
Hi, we found an incorrect use of Clear API of the allocator, which leads to Use-After-Free in schematest.
At test/perftest/schematest.cpp:208, the validator is constructed with validatorAllocator, and the chunks allocated during line 210 to line 213 are collected by the Clear API at line 214 as the for statement is ended.
However, the destructor of GeneriSchemaValidator is called at line 215, leading to invalid accesses to the chunks(Stack).
To avoid this issue, I added explicit delete to the validator before the Clear API call.
Thank you very much for taking the time to revise this issue!