mirror of https://git.ffmpeg.org/ffmpeg.git
mpegts: use goto out instead of break on truncated or invalid pmt tables
Signed-off-by: Marton Balint <cus@passwd.hu> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
7fd64e3e36
commit
d08bb065f2
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue