mpegts: Pad the packet buffer in handle_packet().
This allows it to be used with get_bits without the thread of overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
(cherry picked from commit 1aa708988a)
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
This commit is contained in:
parent
78d4f8cc56
commit
3f7e90cf0c
1 changed files with 2 additions and 1 deletions
|
|
@ -1772,7 +1772,7 @@ static int read_packet(AVFormatContext *s, uint8_t *buf, int raw_packet_size)
|
|||
static int handle_packets(MpegTSContext *ts, int nb_packets)
|
||||
{
|
||||
AVFormatContext *s = ts->stream;
|
||||
uint8_t packet[TS_PACKET_SIZE];
|
||||
uint8_t packet[TS_PACKET_SIZE+FF_INPUT_BUFFER_PADDING_SIZE];
|
||||
int packet_num, ret = 0;
|
||||
|
||||
if (avio_tell(s->pb) != ts->last_pos) {
|
||||
|
|
@ -1794,6 +1794,7 @@ static int handle_packets(MpegTSContext *ts, int nb_packets)
|
|||
|
||||
ts->stop_parse = 0;
|
||||
packet_num = 0;
|
||||
memset(packet + TS_PACKET_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);
|
||||
for(;;) {
|
||||
if (ts->stop_parse>0)
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue