Merge "adb: fix IOKit handle leaks on OS X." am: a2aff3f809 am: 279a1ea5b0 am: dbb34a87b4

am: a539d4c04c

Change-Id: I3622494f5ba6d9a6da8f4879a9390e45323e2ead
This commit is contained in:
Josh Gao 2016-09-27 20:56:58 +00:00 committed by android-build-merger
commit f3d806e6f5
1 changed files with 5 additions and 0 deletions

View File

@ -177,6 +177,7 @@ AndroidInterfaceAdded(io_iterator_t iterator)
kr = (*iface)->GetDevice(iface, &usbDevice);
if (kIOReturnSuccess != kr || !usbDevice) {
LOG(ERROR) << "Couldn't grab device from interface (" << std::hex << kr << ")";
(*iface)->Release(iface);
continue;
}
@ -191,6 +192,7 @@ AndroidInterfaceAdded(io_iterator_t iterator)
(void)IOObjectRelease(usbDevice);
if ((kIOReturnSuccess != kr) || (!plugInInterface)) {
LOG(ERROR) << "Unable to create a device plug-in (" << std::hex << kr << ")";
(*iface)->Release(iface);
continue;
}
@ -200,6 +202,7 @@ AndroidInterfaceAdded(io_iterator_t iterator)
(*plugInInterface)->Release(plugInInterface);
if (result || !dev) {
LOG(ERROR) << "Couldn't create a device interface (" << std::hex << result << ")";
(*iface)->Release(iface);
continue;
}
@ -211,6 +214,8 @@ AndroidInterfaceAdded(io_iterator_t iterator)
if (kr == KERN_SUCCESS) {
devpath = android::base::StringPrintf("usb:%" PRIu32 "X", locationId);
if (IsKnownDevice(devpath)) {
(*dev)->Release(dev);
(*iface)->Release(iface);
continue;
}
}