]> git.sesse.net Git - ffmpeg/commitdiff
avformat/rtsp: Clear reply in every iteration in ff_rtsp_connect()
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 27 Jan 2019 23:53:22 +0000 (00:53 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 30 Jan 2019 23:24:38 +0000 (00:24 +0100)
Fixes: Infinite loop
Found-by: Michael Hanselmann <public@hansmi.ch>
Reviewed-by: Michael Hanselmann <public@hansmi.ch>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/rtsp.c

index ceb770a3a49018f64bec40acece7a711f5ec2626..82c6c12af572cb9e708bc249343d5a57e88ec9c6 100644 (file)
@@ -1663,7 +1663,7 @@ int ff_rtsp_connect(AVFormatContext *s)
     char tcpname[1024], cmd[2048], auth[128];
     const char *lower_rtsp_proto = "tcp";
     int port, err, tcp_fd;
-    RTSPMessageHeader reply1 = {0}, *reply = &reply1;
+    RTSPMessageHeader reply1, *reply = &reply1;
     int lower_transport_mask = 0;
     int default_port = RTSP_DEFAULT_PORT;
     char real_challenge[64] = "";
@@ -1692,6 +1692,7 @@ int ff_rtsp_connect(AVFormatContext *s)
     rt->lower_transport_mask &= (1 << RTSP_LOWER_TRANSPORT_NB) - 1;
 
 redirect:
+    memset(&reply1, 0, sizeof(reply1));
     /* extract hostname and port */
     av_url_split(proto, sizeof(proto), auth, sizeof(auth),
                  host, sizeof(host), &port, path, sizeof(path), s->url);