summaryrefslogtreecommitdiff
path: root/libavformat/mpegts.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2012-04-21 20:44:24 +0300
committerMartin Storsjö <martin@martin.st>2012-04-27 20:05:37 +0300
commitdf8aa4598c7cc1c2f863f6fc6b2d4b3e6dc7345e (patch)
tree1ba340347cd4c9eb40e82d243fc40f82e06ad57f /libavformat/mpegts.c
parent1b4f0857726967064ac504683d06c233c458228b (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.c3
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;
}