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

lib/ogsf: fix possible overflow errors in gsd_wire.c #4636

Merged
merged 1 commit into from
Nov 5, 2024

Conversation

ymdatta
Copy link
Contributor

@ymdatta ymdatta commented Nov 1, 2024

This is in a vein similar to #4635.

In a code, we were doing (255 << 24) which causes integer overflow and positive number gets converted to negative number. We were then assigning this to an unsigned integer in multiple places, which does conversion in a different way.

For example: If we do unsigned int x = -20, UINT_MAX + 1 - 20 is assigned to x.

I do not think that's what is intended when we do with ktrans = (255 << 24). Fix instances of that, by using an unsigned int literal over int literal.

This issue was found using cppcheck tool.

In a code, we were doing `(255 << 24)` which causes integer overflow
and positive number gets converted to negative number. We were then
assigning this to an unsigned integer in multiple places, which does
conversion in a different way.

For example: If we do `unsigned int x = -20`, `UINT_MAX + 1 - 20` is
assigned to x.

I do not think that's what is intended when we do with `ktrans = (255 <<
24)`. Fix instances of that, by using an `unsigned int literal`
over `int literal`.

This issue was found using cppcheck tool.

Signed-off-by: Mohan Yelugoti <[email protected]>
@github-actions github-actions bot added C Related code is in C libraries labels Nov 2, 2024
@ymdatta ymdatta changed the title ogsf: fix possible overflow errors in gsd_wire lib: ogsf: fix possible overflow errors in gsd_wire Nov 2, 2024
@nilason nilason added this to the 8.5.0 milestone Nov 5, 2024
@nilason nilason changed the title lib: ogsf: fix possible overflow errors in gsd_wire lib/ogsf: fix possible overflow errors in gsd_wire.c Nov 5, 2024
@petrasovaa petrasovaa merged commit 206cabc into OSGeo:main Nov 5, 2024
27 of 28 checks passed
@a0x8o a0x8o mentioned this pull request Nov 6, 2024
a0x8o pushed a commit to a0x8o/grass that referenced this pull request Nov 11, 2024
ogsf: fix possible overflow errors in gsd_wire

In a code, we were doing `(255 << 24)` which causes integer overflow
and positive number gets converted to negative number. We were then
assigning this to an unsigned integer in multiple places, which does
conversion in a different way.

For example: If we do `unsigned int x = -20`, `UINT_MAX + 1 - 20` is
assigned to x.

I do not think that's what is intended when we do with `ktrans = (255 <<
24)`. Fix instances of that, by using an `unsigned int literal`
over `int literal`.

This issue was found using cppcheck tool.

Signed-off-by: Mohan Yelugoti <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C Related code is in C libraries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants