OSDN Git Service

lavf/mux: check av_dup_packet() return value.
authorNicolas George <george@nsup.org>
Wed, 19 Feb 2014 16:43:46 +0000 (17:43 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 20 Feb 2014 01:58:39 +0000 (02:58 +0100)
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mux.c

index c535c82..2241dbe 100644 (file)
@@ -639,6 +639,7 @@ int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
     AVPacketList **next_point, *this_pktl;
     AVStream *st   = s->streams[pkt->stream_index];
     int chunked    = s->max_chunk_size || s->max_chunk_duration;
+    int ret;
 
     this_pktl      = av_mallocz(sizeof(AVPacketList));
     if (!this_pktl)
@@ -654,7 +655,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
         av_assert0(pkt->size == UNCODED_FRAME_PACKET_SIZE);
         av_assert0(((AVFrame *)pkt->data)->buf);
     } else {
-        av_dup_packet(&this_pktl->pkt);  // duplicate the packet if it uses non-allocated memory
+        // duplicate the packet if it uses non-allocated memory
+        if ((ret = av_dup_packet(&this_pktl->pkt)) < 0) {
+            av_free(this_pktl);
+            return ret;
+        }
         av_copy_packet_side_data(&this_pktl->pkt, &this_pktl->pkt); // copy side data
     }