diff options
author | Martin Storsjö <martin@martin.st> | 2011-04-12 00:19:56 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2011-04-13 11:30:37 +0300 |
commit | a92a7ddc253a640aba974d859eab20d74cebb3e0 (patch) | |
tree | ea258df95de693ee1ee813fcf0cad08c20e77214 /libavformat/applehttp.c | |
parent | 4c362a5212cf16e888e0ef51c3d6b9866152ef5f (diff) | |
download | ffmpeg-a92a7ddc253a640aba974d859eab20d74cebb3e0.tar.gz |
applehttp: Only check the discard flags if v->ctx actually is initialized
This code could be executed if the demuxer reads more than one
segment before returning from av_open_input_stream.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/applehttp.c')
-rw-r--r-- | libavformat/applehttp.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c index 243f4a6a03..35759be3cb 100644 --- a/libavformat/applehttp.c +++ b/libavformat/applehttp.c @@ -309,10 +309,13 @@ reload: c->end_of_segment = 1; c->cur_seq_no = v->cur_seq_no; - v->needed = 0; - for (i = v->stream_offset; i < v->stream_offset + v->ctx->nb_streams; i++) { - if (v->parent->streams[i]->discard < AVDISCARD_ALL) - v->needed = 1; + if (v->ctx) { + v->needed = 0; + for (i = v->stream_offset; i < v->stream_offset + v->ctx->nb_streams; + i++) { + if (v->parent->streams[i]->discard < AVDISCARD_ALL) + v->needed = 1; + } } if (!v->needed) { av_log(v->parent, AV_LOG_INFO, "No longer receiving variant %d\n", |