]> git.sesse.net Git - vlc/commitdiff
src: fix crash in getaddrinfo due to bugs in the OSX runtime
authorFelix Paul Kühne <fkuehne@videolan.org>
Wed, 3 Jul 2013 21:34:26 +0000 (23:34 +0200)
committerFelix Paul Kühne <fkuehne@videolan.org>
Thu, 4 Jul 2013 16:40:01 +0000 (18:40 +0200)
src/network/getaddrinfo.c

index 16dd68e3a3e21dc7aaf2c96dba675b112a29ea19..85b322e3a6dc24d4d1e9fb8fd6391a749219dc6d 100644 (file)
@@ -121,5 +121,13 @@ int vlc_getaddrinfo (const char *node, unsigned port,
             node = NULL;
     }
 
+#if defined(__APPLE__) && defined(AI_NUMERICSERV)
+    /* work-around a segfault in libSystem on Darwin 12 and later
+     * if AI_NUMERICSERV is set and servname is either NULL or "0"
+     * radar://13058317 */
+    if ((hints->ai_flags & AI_NUMERICSERV) && (servname == NULL || (servname[0] == '0' && servname[1] == 0)))
+        servname = (char *)"00";
+#endif
+
     return getaddrinfo (node, servname, hints, res);
 }