Просмотр исходного кода

Fix: check interface name for nullity

- getifaddrs() sometimes returns entries with NULL ifa_name.
  https://sourceware.org/bugzilla/show_bug.cgi?id=21812
Amir Khan 8 лет назад
Родитель
Сommit
290ccb3ac2
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      MobileLibrary/iOS/PsiphonTunnel/PsiphonTunnel/PsiphonTunnel.m

+ 6 - 2
MobileLibrary/iOS/PsiphonTunnel/PsiphonTunnel/PsiphonTunnel.m

@@ -974,8 +974,12 @@
             
             if (interface->ifa_addr && (interface->ifa_addr->sa_family==AF_INET || interface->ifa_addr->sa_family==AF_INET6)) {
                 
-                NSString *interfaceName = [NSString stringWithUTF8String:interface->ifa_name];
-                [upIffList addObject:interfaceName];
+                // ifa_name could be NULL
+                // https://sourceware.org/bugzilla/show_bug.cgi?id=21812
+                if (interface->ifa_name != NULL) {
+                    NSString *interfaceName = [NSString stringWithUTF8String:interface->ifa_name];
+                    [upIffList addObject:interfaceName];
+                }
             }
         }
     }