diff options
author | Martin Storsjö <martin@martin.st> | 2012-04-21 21:44:24 +0400 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-04-27 21:05:37 +0400 |
commit | df8aa4598c7cc1c2f863f6fc6b2d4b3e6dc7345e (patch) | |
tree | 1ba340347cd4c9eb40e82d243fc40f82e06ad57f /libavformat/mpegts.c | |
parent | 1b4f0857726967064ac504683d06c233c458228b (diff) |
mpegts: Make sure we don't return uninitialized packets
This fixes crashes, where the demuxer could return 0 even
if the returned AVPacket isn't initialized at all. This
could happen if running into EOF or running out of probesize
with non-seekable sources.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/mpegts.c')
-rw-r--r-- | libavformat/mpegts.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index c853e72c3b..2222f25f02 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2020,6 +2020,7 @@ static int mpegts_read_packet(AVFormatContext *s, MpegTSContext *ts = s->priv_data; int ret, i; + pkt->size = -1; ts->pkt = pkt; ret = handle_packets(ts, 0); if (ret < 0) { @@ -2037,6 +2038,8 @@ static int mpegts_read_packet(AVFormatContext *s, } } + if (!ret && pkt->size < 0) + ret = AVERROR(EINTR); return ret; } |