@@ -93,20 +93,20 @@ CHIP_ERROR FindInterfaces(io_iterator_t * primaryInterfaceIterator)
93
93
94
94
CHIP_ERROR GetMACAddressFromInterfaces (io_iterator_t primaryInterfaceIterator, uint8_t * buf)
95
95
{
96
- CHIP_ERROR err = CHIP_NO_ERROR ;
96
+ CHIP_ERROR err = CHIP_ERROR_NOT_FOUND ;
97
97
98
98
kern_return_t kernResult;
99
99
io_object_t interfaceService;
100
100
io_object_t controllerService = 0 ;
101
101
102
102
while ((interfaceService = IOIteratorNext (primaryInterfaceIterator)))
103
103
{
104
- CFTypeRef MACAddressAsCFData = nullptr ;
105
- CFTypeRef linkStatusAsCFNumber = nullptr ;
106
- kernResult = IORegistryEntryGetParentEntry (interfaceService, kIOServicePlane , &controllerService);
104
+ kernResult = IORegistryEntryGetParentEntry (interfaceService, kIOServicePlane , &controllerService);
105
+ IOObjectRelease (interfaceService);
107
106
VerifyOrExit (KERN_SUCCESS == kernResult, err = CHIP_ERROR_INTERNAL);
108
107
109
- linkStatusAsCFNumber = IORegistryEntryCreateCFProperty (controllerService, CFSTR (kIOLinkStatus ), kCFAllocatorDefault , 0 );
108
+ CFTypeRef linkStatusAsCFNumber =
109
+ IORegistryEntryCreateCFProperty (controllerService, CFSTR (kIOLinkStatus ), kCFAllocatorDefault , 0 );
110
110
VerifyOrExit (linkStatusAsCFNumber != nullptr , err = CHIP_ERROR_INTERNAL);
111
111
112
112
uint64_t linkStatus;
@@ -115,27 +115,21 @@ CHIP_ERROR GetMACAddressFromInterfaces(io_iterator_t primaryInterfaceIterator, u
115
115
116
116
if ((linkStatus & kIONetworkLinkValid ) && (linkStatus & kIONetworkLinkActive ))
117
117
{
118
- MACAddressAsCFData = IORegistryEntryCreateCFProperty (controllerService, CFSTR (kIOMACAddress ), kCFAllocatorDefault , 0 );
118
+ CFTypeRef MACAddressAsCFData =
119
+ IORegistryEntryCreateCFProperty (controllerService, CFSTR (kIOMACAddress ), kCFAllocatorDefault , 0 );
119
120
VerifyOrExit (MACAddressAsCFData != nullptr , err = CHIP_ERROR_INTERNAL);
120
121
121
122
CFDataGetBytes ((CFDataRef ) MACAddressAsCFData, CFRangeMake (0 , kIOEthernetAddressSize ), buf);
122
123
CFRelease (MACAddressAsCFData);
124
+ ExitNow (err = CHIP_NO_ERROR);
123
125
}
124
126
125
- kernResult = IOObjectRelease (controllerService);
126
- VerifyOrExit (KERN_SUCCESS == kernResult, err = CHIP_ERROR_INTERNAL);
127
-
128
- kernResult = IOObjectRelease (interfaceService);
129
- VerifyOrExit (KERN_SUCCESS == kernResult, err = CHIP_ERROR_INTERNAL);
127
+ IOObjectRelease (controllerService);
128
+ controllerService = 0 ;
130
129
}
131
130
132
131
exit :
133
- if (IOObjectGetRetainCount (interfaceService))
134
- {
135
- IOObjectRelease (interfaceService);
136
- }
137
-
138
- if (IOObjectGetRetainCount (controllerService))
132
+ if (controllerService)
139
133
{
140
134
IOObjectRelease (controllerService);
141
135
}
0 commit comments