rtsp: Do not assume getnameinfo cannot fail
authorLuca Barbato <lu_zero@gentoo.org>
Mon, 23 Nov 2015 22:57:47 +0000 (23:57 +0100)
committerLuca Barbato <lu_zero@gentoo.org>
Wed, 25 Nov 2015 08:01:25 +0000 (09:01 +0100)
And properly report the error when it happens.

libavformat/rtsp.c

index f62e370..8a94baf 100644 (file)
@@ -2264,8 +2264,14 @@ static int sdp_read_header(AVFormatContext *s)
         if (!(rt->rtsp_flags & RTSP_FLAG_CUSTOM_IO)) {
             AVDictionary *opts = map_to_opts(rt);
 
-            getnameinfo((struct sockaddr*) &rtsp_st->sdp_ip, sizeof(rtsp_st->sdp_ip),
-                        namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
+            err = getnameinfo((struct sockaddr*) &rtsp_st->sdp_ip,
+                              sizeof(rtsp_st->sdp_ip),
+                              namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
+            if (err) {
+                av_log(s, AV_LOG_ERROR, "getnameinfo: %s\n", gai_strerror(err));
+                err = AVERROR(EIO);
+                goto fail;
+            }
             ff_url_join(url, sizeof(url), "rtp", NULL,
                         namebuf, rtsp_st->sdp_port,
                         "?localport=%d&ttl=%d&connect=%d&write_to_source=%d",