[vlc-commits] upnp: Do not crash without an active interface on macOS

Marvin Scholz git at videolan.org
Tue Dec 10 12:03:25 CET 2019


vlc/vlc-3.0 | branch: master | Marvin Scholz <epirat07 at gmail.com> | Tue Dec 10 11:58:45 2019 +0100| [bd391a39db694c5241e1c60ef63c70cbdaa999ed] | committer: Marvin Scholz

upnp: Do not crash without an active interface on macOS

(manually cherry-picked from 7000b96ea7ecea5109048913fcef4bc8af8ac143)
Signed-off-by: Marvin Scholz <epirat07 at gmail.com>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=bd391a39db694c5241e1c60ef63c70cbdaa999ed
---

 modules/services_discovery/upnp.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/modules/services_discovery/upnp.cpp b/modules/services_discovery/upnp.cpp
index 4dc966738f..d51a533b47 100644
--- a/modules/services_discovery/upnp.cpp
+++ b/modules/services_discovery/upnp.cpp
@@ -1583,6 +1583,9 @@ inline char *FromCFString(const CFStringRef cfString,
 inline char *getPreferedAdapter()
 {
     SCDynamicStoreRef session = SCDynamicStoreCreate(NULL, CFSTR("session"), NULL, NULL);
+    if (session == NULL)
+        return NULL;
+
     CFDictionaryRef q = (CFDictionaryRef) SCDynamicStoreCopyValue(session, CFSTR("State:/Network/Global/IPv4"));
     char *returnValue = NULL;
 
@@ -1591,8 +1594,8 @@ inline char *getPreferedAdapter()
         if (CFDictionaryGetValueIfPresent(q, CFSTR("PrimaryInterface"), &val)) {
             returnValue = FromCFString((CFStringRef)val, kCFStringEncodingUTF8);
         }
+        CFRelease(q);
     }
-    CFRelease(q);
     CFRelease(session);
 
     return returnValue;



More information about the vlc-commits mailing list