Fix out-of-bound access to lightmap array #46777
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.
Summary
SUMMARY: None
Purpose of change
When starting a new game through creating a custom character, UB sanitizer complains about out-of-bound access to
lightmap
array inmap::build_seen_cache()
.Describe the solution
map::build_seen_cache()
expects a non-negative player position. Player X position is set to -1 inset_stats
, causing out-of-bound access. Set it back to 0.Describe alternatives you've considered
None yet.
Testing
Recompile the game with UB sanitizer, create a custom character and start the new game. No error is reported. The game starts normally.
Additional context
Closes #36570, closes #43313.