matroskadec: check return values
authorVittorio Giovara <vittorio.giovara@gmail.com>
Thu, 23 Oct 2014 23:05:53 +0000 (00:05 +0100)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Fri, 24 Oct 2014 22:48:51 +0000 (23:48 +0100)
CC: libav-stable@libav.org
Bug-Id: CID 733712

libavformat/matroskadec.c

index d3ce009..a83589a 100644 (file)
@@ -2132,8 +2132,16 @@ static int matroska_parse_rm_audio(MatroskaDemuxContext *matroska,
     }
 
     while (track->audio.pkt_cnt) {
+        int ret;
         AVPacket *pkt = av_mallocz(sizeof(AVPacket));
-        av_new_packet(pkt, a);
+        if (!pkt)
+            return AVERROR(ENOMEM);
+
+        ret = av_new_packet(pkt, a);
+        if (ret < 0) {
+            av_free(pkt);
+            return ret;
+        }
         memcpy(pkt->data,
                track->audio.buf + a * (h * w / a - track->audio.pkt_cnt--),
                a);