tta: check for allocation failure of decode_buffer
authorJustin Ruggles <justin.ruggles@gmail.com>
Mon, 24 Oct 2011 13:20:07 +0000 (09:20 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Tue, 25 Oct 2011 15:22:02 +0000 (11:22 -0400)
libavcodec/tta.c

index ddfcb2e..ed8d76b 100644 (file)
@@ -263,10 +263,14 @@ static av_cold int tta_decode_init(AVCodecContext * avctx)
 
         if (s->bps == 2) {
             s->decode_buffer = av_mallocz(sizeof(int32_t)*s->frame_length*s->channels);
+            if (!s->decode_buffer)
+                return AVERROR(ENOMEM);
         }
         s->ch_ctx = av_malloc(avctx->channels * sizeof(*s->ch_ctx));
-        if (!s->ch_ctx)
+        if (!s->ch_ctx) {
+            av_freep(&s->decode_buffer);
             return AVERROR(ENOMEM);
+        }
     } else {
         av_log(avctx, AV_LOG_ERROR, "Wrong extradata present\n");
         return -1;