iOS web browser with a focus on security and privacy
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

LocalNetworkChecker: stop some memory leaks

+15 -6
+15 -6
Endless/LocalNetworkChecker.m
··· 44 44 } 45 45 46 46 CFHostRef hostRef = CFHostCreateWithName(kCFAllocatorDefault, (__bridge CFStringRef)host); 47 - if (!CFHostStartInfoResolution(hostRef, kCFHostAddresses, nil)) 47 + if (!CFHostStartInfoResolution(hostRef, kCFHostAddresses, nil)) { 48 + CFRelease(hostRef); 48 49 return nil; 49 - 50 + } 51 + 50 52 CFArrayRef addressesRef = CFHostGetAddressing(hostRef, nil); 51 - if (addressesRef == nil) 53 + if (addressesRef == nil) { 54 + CFRelease(hostRef); 52 55 return nil; 56 + } 53 57 54 58 char ipAddress[INET6_ADDRSTRLEN]; 55 59 NSMutableArray *addresses = [NSMutableArray array]; 56 60 CFIndex numAddresses = CFArrayGetCount(addressesRef); 57 61 for (CFIndex currentIndex = 0; currentIndex < numAddresses; currentIndex++) { 58 62 struct sockaddr *address = (struct sockaddr *)CFDataGetBytePtr(CFArrayGetValueAtIndex(addressesRef, currentIndex)); 59 - if (address == nil) 63 + if (address == nil) { 64 + CFRelease(hostRef); 60 65 return nil; 66 + } 61 67 62 - if (getnameinfo(address, address->sa_len, ipAddress, INET6_ADDRSTRLEN, nil, 0, NI_NUMERICHOST) != 0) 68 + if (getnameinfo(address, address->sa_len, ipAddress, INET6_ADDRSTRLEN, nil, 0, NI_NUMERICHOST) != 0) { 69 + CFRelease(hostRef); 63 70 return nil; 71 + } 64 72 65 73 [addresses addObject:[NSString stringWithCString:ipAddress encoding:NSASCIIStringEncoding]]; 66 74 } 67 - 75 + CFRelease(hostRef); 76 + 68 77 [dnsCache setValue:@{ @"addresses" : addresses, @"time" : [NSDate date] } forKey:[host lowercaseString]]; 69 78 70 79 return addresses;