From d08bb065f2acad0f77c53dacfb25c2885d8cc864 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sun, 2 Mar 2014 18:34:48 +0100 Subject: [PATCH] mpegts: use goto out instead of break on truncated or invalid pmt tables Signed-off-by: Marton Balint Signed-off-by: Michael Niedermayer --- libavformat/mpegts.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 10b33fe1dd..2a03f011e9 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -1705,10 +1705,10 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len break; pid = get16(&p, p_end); if (pid < 0) - break; + goto out; pid &= 0x1fff; if (pid == ts->current_pid) - break; + goto out; /* now create stream */ if (ts->pids[pid] && ts->pids[pid]->type == MPEGTS_PES) { @@ -1754,11 +1754,11 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len desc_list_len = get16(&p, p_end); if (desc_list_len < 0) - break; + goto out; desc_list_len &= 0xfff; desc_list_end = p + desc_list_len; if (desc_list_end > p_end) - break; + goto out; for(;;) { if (ff_parse_mpeg2_descriptor(ts->stream, st, stream_type, &p, desc_list_end, mp4_descr, mp4_descr_count, pid, ts) < 0)