[FFmpeg-cvslog] applehttp: Only check the discard flags if v->ctx actually is initialized

Martin Storsjö git at videolan.org
Thu Apr 14 03:24:36 CEST 2011


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Tue Apr 12 00:19:56 2011 +0300| [a92a7ddc253a640aba974d859eab20d74cebb3e0] | committer: Martin Storsjö

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 at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a92a7ddc253a640aba974d859eab20d74cebb3e0
---

 libavformat/applehttp.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c
index 243f4a6..35759be 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",



More information about the ffmpeg-cvslog mailing list