OSGeo / grass

GRASS GIS - free and open-source geospatial processing engine
https://grass.osgeo.org
Other
855 stars 310 forks source link

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

Closed ymdatta closed 2 weeks ago

ymdatta commented 3 weeks ago

This is in a vein similar to https://github.com/OSGeo/grass/pull/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.