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

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure.

Copy link
Member

@LordAro LordAro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure.

@rubidium42 rubidium42 merged commit 1c0c463 into OpenTTD:master Jul 10, 2021
@rubidium42 rubidium42 deleted the bad_shift_operation branch July 10, 2021 08:51
@rubidium42 rubidium42 added the backport requested This PR should be backport to current release (RC / stable) label Jul 10, 2021
@TrueBrain TrueBrain removed the backport requested This PR should be backport to current release (RC / stable) label Oct 3, 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
Development

Successfully merging this pull request may close these issues.

None yet

3 participants