Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix 11ab3c4: [NewGRF] Overflow when determining cargo mask for string code 9A 1E #9423

Merged
merged 1 commit into from Jul 10, 2021

Conversation

@rubidium42
Copy link
Contributor

@rubidium42 rubidium42 commented Jul 10, 2021

Motivation / Problem

From coverity's scan:

1453026 Bad bit shift operation
The operation may have an undefined behavior or yield an unexpected result.

In RemapNewGRFStringControlCode(unsigned int, char *, char **, char const**, long long *, unsigned int, bool): 
A bit shift operation has a shift amount which is too large or has a negative value.

Description

Make the 1 that is shifted 64 bits, so shifting with a cargo type > 32 will not result in a 0 value for the cargo mask to look up.

Limitations

I haven't tested it as I have no idea which NewGRF uses this string code. Making a NewGRF for this is a bit out of my league.

Checklist for review

Some things are not automated, and forgotten often. This list is a reminder for the reviewers.

  • The bug fix is important enough to be backported? (label: 'backport requested')
  • This PR affects the save game format? (label 'savegame upgrade')
  • This PR affects the GS/AI API? (label 'needs review: Script API')
    • ai_changelog.hpp, gs_changelog.hpp need updating.
    • The compatibility wrappers (compat_*.nut) need updating.
  • This PR affects the NewGRF API? (label 'needs review: NewGRF')
… code 9A 1E

9A 1E: Print unsigned word as name of a cargo type (translated for GRF version >= 7).
Copy link
Member

@TrueBrain TrueBrain left a comment

Sure.

Loading

Copy link
Member

@LordAro LordAro left a comment

Sure.

Loading

@rubidium42 rubidium42 merged commit 1c0c463 into OpenTTD:master Jul 10, 2021
14 checks passed
Loading
@rubidium42 rubidium42 deleted the bad_shift_operation branch Jul 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants