[FFmpeg-cvslog] lavc/gifdec: move idx_line allocation out of gif_read_header1()

Paul B Mahol git at videolan.org
Fri Jan 25 13:59:26 CET 2013


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Fri Jan 25 12:46:57 2013 +0000| [51c7af9d32376df4522bc948e45fea5ef75af31c] | committer: Paul B Mahol

lavc/gifdec: move idx_line allocation out of gif_read_header1()

Now allocation is done only if av_image_check_size() passes.

Signed-off-by: Paul B Mahol <onemda at gmail.com>

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

 libavcodec/gifdec.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/gifdec.c b/libavcodec/gifdec.c
index 90aaa46..b43dd6e 100644
--- a/libavcodec/gifdec.c
+++ b/libavcodec/gifdec.c
@@ -376,10 +376,6 @@ static int gif_read_header1(GifState *s)
         return AVERROR_INVALIDDATA;
     }
 
-    av_fast_malloc(&s->idx_line, &s->idx_line_size, s->screen_width);
-    if (!s->idx_line)
-        return AVERROR(ENOMEM);
-
     v = bytestream2_get_byteu(&s->gb);
     s->color_resolution = ((v & 0x70) >> 4) + 1;
     s->has_global_palette = (v & 0x80);
@@ -486,6 +482,10 @@ static int gif_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, A
             return ret;
         }
 
+        av_fast_malloc(&s->idx_line, &s->idx_line_size, s->screen_width);
+        if (!s->idx_line)
+            return AVERROR(ENOMEM);
+
         s->picture.pict_type = AV_PICTURE_TYPE_I;
         s->picture.key_frame = 1;
         s->keyframe_ok = 1;



More information about the ffmpeg-cvslog mailing list