rtsp: Fix a crash with the RTSP muxer

Message ID 20161124222951.6AF1F5DACC@aruru.libav.org
State New
Headers show

Commit Message

Janne Grunau Nov. 24, 2016, 10:29 p.m.
Module: libav
Branch: master
Commit: df3795025337479a639cb3cd26c93a4e82ccd4db

Author:    Martin Storsjö <martin@martin.st>
Committer: Martin Storsjö <martin@martin.st>
Date:      Thu Sep 15 14:21:38 2016 +0300

rtsp: Fix a crash with the RTSP muxer

This was introduced in bc2a32969e.

The whole block that the statement was added to is only
relevant when used as a demuxer, but the other statements
there have had other if statements guarding them. Make
sure to only run this whole block if being used as a
demuxer.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>

---

 libavformat/rtsp.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Patch

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index b9416d2..84b912f 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -827,7 +827,8 @@  int ff_rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st)
 
     if (!rtsp_st->transport_priv) {
          return AVERROR(ENOMEM);
-    } else if (CONFIG_RTPDEC && rt->transport == RTSP_TRANSPORT_RTP) {
+    } else if (CONFIG_RTPDEC && rt->transport == RTSP_TRANSPORT_RTP &&
+               s->iformat) {
         RTPDemuxContext *rtpctx = rtsp_st->transport_priv;
         rtpctx->ssrc = rtsp_st->ssrc;
         if (rtsp_st->dynamic_handler) {