mpegts: prevent freeing ones own section in pat_cb
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 13 Nov 2012 18:48:03 +0000 (19:48 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 13 Nov 2012 20:45:53 +0000 (21:45 +0100)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mpegts.c

index 946e31a..9e3f342 100644 (file)
@@ -1594,6 +1594,9 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
             break;
         pmt_pid &= 0x1fff;
 
+        if (pmt_pid == ts->current_pid)
+            break;
+
         av_dlog(ts->stream, "sid=0x%x pid=0x%x\n", sid, pmt_pid);
 
         if (sid == 0x0000) {