[MPlayer-dev-eng] [PATCH] fix segfaults on invalid rtsp streams when using live.com

Diego Biurrun diego at biurrun.de
Tue Apr 27 11:01:41 CEST 2004


Did anybody have a look at this patch?  adland, this does not apply
cleanly any more, could you please resend it if it is still relevant?
Ross, could you check and apply/reject this, please?

Diego

adland writes:
> Patch to remove the sig 11 segfaults on failure of live.com rtsp stream setup.
> (live.com is enabled in build)
> 
> example of invalid rtsp stream URL is 
> rtsp://203.167.246.115/trackID=1
> 
> Failed to get a SDP description from URL "rtsp://203.167.246.115/trackID=1":
> cannot handle DESCRIBE response: RTSP/1.0 404 Not Found
> 
> it is a small change and is listed below.
> tested changes and they worked.
> 
> apply
> 
> diff -Naur main.orig/libmpdemux/demux_rtp.cpp updated/libmpdemux/demux_rtp.cpp
> --- main.orig/libmpdemux/demux_rtp.cpp  2004-03-02 03:52:59.000000000 -0500
> +++ updated/libmpdemux/demux_rtp.cpp    2004-03-17 17:20:37.000000000 -0500
> @@ -146,7 +146,7 @@
>      if (rtspClient == NULL) {
>        fprintf(stderr, "Failed to create RTSP client: %s\n",
>         env->getResultMsg());
> -      break;
> +           return NULL; //FAILURE so let it be known and propagated back
>      }
>      sdpDescription = openURL_rtsp(rtspClient, url);
>        } else { // SIP
> @@ -156,7 +156,7 @@
>      if (sipClient == NULL) {
>        fprintf(stderr, "Failed to create SIP client: %s\n",
>         env->getResultMsg());
> -      break;
> +         return NULL; //FAILURE so let it be known and propagated back
>      }
>      sipClient->setClientStartPortNum(8000);
>      sdpDescription = openURL_sip(sipClient, url);
> @@ -165,13 +165,13 @@
>        if (sdpDescription == NULL) {
>      fprintf(stderr, "Failed to get a SDP description from URL \"%s\": %s\n",
>       url, env->getResultMsg());
> -    break;
> +     return NULL; //FAILURE so let it be known and propagated back
>        }
>      }
> 
>      // Now that we have a SDP description, create a MediaSession from it:
>      MediaSession* mediaSession = MediaSession::createNew(*env, sdpDescription);
> -    if (mediaSession == NULL) break;
> +    if (mediaSession == NULL)  return NULL; //FAILURE so let it be known and
> propagated back
> 
> 
>      // Create a 'RTPState' structure containing the state that we just created,




More information about the MPlayer-dev-eng mailing list