aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Abeni <lucabe72@email.it>2007-09-17 12:47:44 +0000
committerLuca Abeni <lucabe72@email.it>2007-09-17 12:47:44 +0000
commit25e3e53d4092e7b69a4d681824fa0f7b2731bb1e (patch)
tree4391a97353efc8e2744609ef7f06752493144c13
parent7f559eb1cd8d432640c099560db7be08b0dd57bf (diff)
downloadffmpeg-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
-rw-r--r--ffserver.c10
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;