[FFmpeg-cvslog] avcodec/sgi: Fix dereferencing uninitialized pointer

Michael Niedermayer git at videolan.org
Wed Oct 23 02:52:28 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Oct 23 01:40:57 2013 +0200| [60ea0a5236ceac03b8d3ab3b73bda04d04c17273] | committer: Michael Niedermayer

avcodec/sgi: Fix dereferencing uninitialized pointer

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 at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=60ea0a5236ceac03b8d3ab3b73bda04d04c17273
---

 libavcodec/sgidec.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libavcodec/sgidec.c b/libavcodec/sgidec.c
index df41e89..e373825 100644
--- a/libavcodec/sgidec.c
+++ b/libavcodec/sgidec.c
@@ -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--)



More information about the ffmpeg-cvslog mailing list