avcodec/sgi: Fix dereferencing uninitialized pointer
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 22 Oct 2013 23:40:57 +0000 (01:40 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 23 Oct 2013 00:49:45 +0000 (02:49 +0200)
This also fixes the code so it decodes raw images correctly again
No release is affected by this

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/sgidec.c

index df41e89..e373825 100644 (file)
@@ -138,10 +138,9 @@ static int read_uncompressed_sgi(unsigned char* out_buf, SgiState *s)
     for (y = s->height - 1; y >= 0; y--) {
         out_end = out_buf + (y * s->linesize);
         if (s->bytes_per_channel == 1) {
-            for (x = s->width; x > 0; x--) {
-                bytestream2_get_bufferu(&gp[z], out_end, s->depth);
-                out_end += s->depth;
-            }
+            for (x = s->width; x > 0; x--)
+                for (z = 0; z < s->depth; z++)
+                    *out_end++ = bytestream2_get_byteu(&gp[z]);
         } else {
             uint16_t *out16 = (uint16_t *)out_end;
             for (x = s->width; x > 0; x--)