[5.3] Fix NULL deref for invalid mangled input (#31878) #31979
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.
This is a nomination to merge this change into release/5.3
Original description: The
Qo
operator expects to consume a type name and a list (terminated with ay
empty list marker) from the stack. After popping the list, it doesn't check whether the stack is empty, so$syQo
crashes (it pops down to they
then tries to pop again).This PR just adds the obvious check to guard against this.
Risk: Minor. We just fail if a nullptr is encountered at one point where valid input should never give us a nullptr. The code would previously segfault at this point. This should only ever happen on malformed input.
Testing: Verified by original reporter, CI testing, local validation test runs.
Resolves rdar://63128307