Prevent double free of side_data when AVFMT_FLAG_KEEP_SIDE_DATA flag is set
authorGavin Kinsey <gkinsey@ad-holdings.co.uk>
Thu, 8 Sep 2011 12:01:14 +0000 (13:01 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 8 Sep 2011 21:47:23 +0000 (23:47 +0200)
libavformat/utils.c

index d3a0d4a..706c2b4 100644 (file)
@@ -1146,7 +1146,10 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
             if (!st->need_parsing || !st->parser) {
                 /* no parsing needed: we just output the packet as is */
                 /* raw data support */
-                *pkt = st->cur_pkt; st->cur_pkt.data= NULL;
+                *pkt = st->cur_pkt;
+                st->cur_pkt.data= NULL;
+                st->cur_pkt.side_data_elems = 0;
+                st->cur_pkt.side_data = NULL;
                 compute_pkt_fields(s, st, NULL, pkt);
                 s->cur_st = NULL;
                 if ((s->iformat->flags & AVFMT_GENERIC_INDEX) &&