title: IPConfiguration apple80211Open() crashes on iOS8
body: <p>I am trying to read RSSI of iPhone WIFI connection to AP.</p>
  
  <p>Using Xcode 6.1.1 with iPhone6+ ios 8.1.3</p>
  
  <p>Code below crashes at <code>apple80211Open()</code> and gets E<code>XC_BAD_ACCESS (code=1, address= 0)</code> on iOS 8.   (code works on iOS 7.1)</p>
  
  <p>This is for app that is NOT for Apple Store -- for adhoc distribution only.</p>
  
  <p>=================================================================</p>
  
  <pre><code>void *libHandle;
     void *airportHandle;
  
     int (*apple80211Open)(void *);
     int (*apple80211Bind)(void *, NSString *);
     int (*apple80211Close)(void *);
     int (*apple80211GetInfoCopy)(void *, CFDictionaryRef *);
  
     NSMutableDictionary *infoDict = [NSMutableDictionary new];
     NSDictionary * tempDictionary;
     libHandle = dlopen("/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration", RTLD_LAZY);
  
     char *dlerror_error;
  
     if (libHandle == NULL &amp;&amp; (dlerror_error = dlerror()) != NULL)  {
        NSLog(@"%s", dlerror_error);
     }
  
     apple80211Open = dlsym(libHandle, "Apple80211Open");
     apple80211Bind = dlsym(libHandle, "Apple80211BindToInterface");
     apple80211Close = dlsym(libHandle, "Apple80211Close");
     apple80211GetInfoCopy = dlsym(libHandle, "Apple80211GetInfoCopy");
  
     apple80211Open(&amp;airportHandle);
     apple80211Bind(airportHandle, @"en0");
  
     CFDictionaryRef info = NULL;
  
     apple80211GetInfoCopy(airportHandle, &amp;info);
  
     tempDictionary = (__bridge NSDictionary *)info;
  
     apple80211Close(airportHandle);
  
     [infoDict setObject:(tempDictionary[@"RSSI"])[@"RSSI_CTL_AGR"] ? (tempDictionary[@"RSSI"])[@"RSSI_CTL_AGR"] : @"0" forKey:@"RSSI"];
  
     [infoDict setObject:tempDictionary[@"BSSID"] ? tempDictionary[@"BSSID"] : @"null" forKey:@"BSSID"];
  
     [infoDict setObject:tempDictionary[@"SSID_STR"] ? tempDictionary[@"SSID_STR"] : @"null" forKey:@"SSID"];
  
     [infoDict setObject:tempDictionary[@"RATE"] ? tempDictionary[@"RATE"] : @"0" forKey:@"SPEED"];
  </code></pre>