summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_ts.c')
-rw-r--r--libmpdemux/demux_ts.c4
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;