diff options
author | Luca Abeni <lucabe72@email.it> | 2007-09-17 12:47:44 +0000 |
---|---|---|
committer | Luca Abeni <lucabe72@email.it> | 2007-09-17 12:47:44 +0000 |
commit | 25e3e53d4092e7b69a4d681824fa0f7b2731bb1e (patch) | |
tree | 4391a97353efc8e2744609ef7f06752493144c13 /ffserver.c | |
parent | 7f559eb1cd8d432640c099560db7be08b0dd57bf (diff) | |
download | ffmpeg-25e3e53d4092e7b69a4d681824fa0f7b2731bb1e.tar.gz |
Fix an ffserver crash when a non-existing rtsp: url is requested
Originally committed as revision 10519 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffserver.c')
-rw-r--r-- | ffserver.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ffserver.c b/ffserver.c index 6d9af54ad5..96eb4fe0fa 100644 --- a/ffserver.c +++ b/ffserver.c @@ -1627,7 +1627,7 @@ static void compute_stats(HTTPContext *c) strcpy(eosf - 4, ".asx"); else if (strcmp(eosf - 3, ".rm") == 0) strcpy(eosf - 3, ".ram"); - else if (!strcmp(stream->fmt->name, "rtp")) { + else if (stream->fmt && !strcmp(stream->fmt->name, "rtp")) { /* generate a sample RTSP director if unicast. Generate an SDP redirector if multicast */ @@ -2684,7 +2684,8 @@ static void rtsp_cmd_describe(HTTPContext *c, const char *url) path++; for(stream = first_stream; stream != NULL; stream = stream->next) { - if (!stream->is_feed && !strcmp(stream->fmt->name, "rtp") && + if (!stream->is_feed && + stream->fmt && !strcmp(stream->fmt->name, "rtp") && !strcmp(path, stream->filename)) { goto found; } @@ -2759,7 +2760,8 @@ static void rtsp_cmd_setup(HTTPContext *c, const char *url, /* now check each stream */ for(stream = first_stream; stream != NULL; stream = stream->next) { - if (!stream->is_feed && !strcmp(stream->fmt->name, "rtp")) { + if (!stream->is_feed && + stream->fmt && !strcmp(stream->fmt->name, "rtp")) { /* accept aggregate filenames only if single stream */ if (!strcmp(path, stream->filename)) { if (stream->nb_streams != 1) { @@ -3296,7 +3298,7 @@ static void build_file_streams(void) /* try to open the file */ /* open stream */ stream->ap_in = av_mallocz(sizeof(AVFormatParameters)); - if (!strcmp(stream->fmt->name, "rtp")) { + if (stream->fmt && !strcmp(stream->fmt->name, "rtp")) { /* specific case : if transport stream output to RTP, we use a raw transport stream reader */ stream->ap_in->mpeg2ts_raw = 1; |