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 1 commit into from Jul 10, 2021


Copy link

@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.


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.


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

@TrueBrain TrueBrain left a comment


Copy link

@LordAro LordAro left a comment


@rubidium42 rubidium42 merged commit 1c0c463 into OpenTTD:master Jul 10, 2021
14 checks passed
@rubidium42 rubidium42 deleted the bad_shift_operation branch Jul 10, 2021
@rubidium42 rubidium42 added the backport requested label Jul 10, 2021
@TrueBrain TrueBrain removed the backport requested label Oct 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet

Successfully merging this pull request may close these issues.

None yet

3 participants