OSGeo / grass

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

lib/ogsf: fix possible overflow errors in gvld.c #4637

Closed ymdatta closed 3 weeks ago

ymdatta commented 3 weeks ago

This is similar to https://github.com/OSGeo/grass/pull/4635.

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 ktrans = (255 << 24). Fix instances of that, by using an unsigned int literal over int literal.

This issue was found using cppcheck tool.