mesa/main: fix integer overflows in _mesa_image_offset
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 13 May 2016 06:48:04 +0000 (01:48 -0500)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 15 Jun 2016 07:27:30 +0000 (09:27 +0200)
Found using -fsanitize=undefined.

Cc: "11.1 11.2 12.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/image.c

index 4d6ab6f2b569ddefad6003428378bea0cea49056..a039b51985f782bfce6c25f18a291408558912d4 100644 (file)
@@ -151,8 +151,8 @@ _mesa_image_offset( GLuint dimensions,
 
    if (type == GL_BITMAP) {
       /* BITMAP data */
-      GLint bytes_per_row;
-      GLint bytes_per_image;
+      GLintptr bytes_per_row;
+      GLintptr bytes_per_image;
       /* components per pixel for color or stencil index: */
       const GLint comp_per_pixel = 1;
 
@@ -170,8 +170,8 @@ _mesa_image_offset( GLuint dimensions,
    }
    else {
       /* Non-BITMAP data */
-      GLint bytes_per_pixel, bytes_per_row, remainder, bytes_per_image;
-      GLint topOfImage;
+      GLintptr bytes_per_pixel, bytes_per_row, remainder, bytes_per_image;
+      GLintptr topOfImage;
 
       bytes_per_pixel = _mesa_bytes_per_pixel( format, type );