diff options
-rw-r--r-- | libmpdemux/demux_ts.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 2daa7fd50b..31c2c534d1 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -3151,6 +3151,10 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet, demuxer->filepos = stream_tell(demuxer->stream) - es->size; + if(es->size < 0 || es->size > buf_size) { + mp_msg(MSGT_DEMUX, MSGL_ERR, "Broken ES packet size\n"); + es->size = 0; + } memmove(p, es->start, es->size); *dp_offset += es->size; (*dp)->flags = 0; |