fix: stack-use-after-scope variable ordering #4355
Merged
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.
Resolved issues:
#4354
Description of changes:
When running with newer address sanitizers, ASAN detects a
stack-use-after-scope
variable ordering issue.Sequence of events
s2n_blob
new_bufs
is definednew_bufs_mem
is definednew_bufs_mem
goes out of scope first (because it was defined last)s2n_blob
new_bufs
goes out of scope, triggering the DEFER_CLEANUPnew_bufs
, but that buffer (new_bufs_mem
) is already out of scopeThis commit switches the order of
new_bufs
andnew_bufs_mem
so thatnew_bufs_mem
is still in scope whens2n_free_or_wipe
accesses it.Call-outs:
This failure does reproduce in #4048. build dashboard I cleaned up that PR and will be merging it after this fix is merged in.
Testing:
Confirmed on local host that ASAN errors no longer occur. I then rebased this commit on the ASAN commit branch and ran it under the new codebuild job to confirm that no errors were found.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.