]> git.imager.perl.org - imager.git/blobdiff - SGI/imsgi.c
avoid a possible sign-extension for offsets/sizes in SGI
[imager.git] / SGI / imsgi.c
index 3b61d8267e19e1f3434e8ef98a149b90b2c5f6fe..f6ad1b57daa855786d609beff17fb1ee75efcfa5 100644 (file)
@@ -442,7 +442,7 @@ read_rle_tables(io_glue *ig, i_img *img,
   }
 
   for(i = 0; i < height * channels; i++) 
   }
 
   for(i = 0; i < height * channels; i++) 
-    start_tab[i] = (databuf[i*4] << 24) | (databuf[i*4+1] << 16) | 
+    start_tab[i] = ((unsigned long)databuf[i*4] << 24) | (databuf[i*4+1] << 16) |
       (databuf[i*4+2] << 8) | (databuf[i*4+3]);
 
 
       (databuf[i*4+2] << 8) | (databuf[i*4+3]);
 
 
@@ -453,8 +453,8 @@ read_rle_tables(io_glue *ig, i_img *img,
   }
 
   for(i=0; i < height * channels; i++) {
   }
 
   for(i=0; i < height * channels; i++) {
-    length_tab[i] = (databuf[i*4] << 24) + (databuf[i*4+1] << 16)+
-      (databuf[i*4+2] << 8) + (databuf[i*4+3]);
+    length_tab[i] = ((unsigned long)databuf[i*4] << 24) | (databuf[i*4+1] << 16) |
+      (databuf[i*4+2] << 8) | (databuf[i*4+3]);
     if (length_tab[i] > max_length)
       max_length = length_tab[i];
   }
     if (length_tab[i] > max_length)
       max_length = length_tab[i];
   }