From b9da2bc32faef1bfcf9b5f8882643f12cf8deb35 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Tue, 31 Mar 2015 16:55:23 +0200 Subject: [PATCH] (Apple HID) Handle iOHIDDeviceOpen not returning success --- input/drivers_hid/apple_hid.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/input/drivers_hid/apple_hid.c b/input/drivers_hid/apple_hid.c index 424cc67a4d..7bb63b41a8 100644 --- a/input/drivers_hid/apple_hid.c +++ b/input/drivers_hid/apple_hid.c @@ -242,6 +242,7 @@ static uint16_t apple_hid_get_product_id(IOHIDDeviceRef device) static void add_device(void* context, IOReturn result, void* sender, IOHIDDeviceRef device) { + IOReturn ret; uint16_t dev_vid, dev_pid; CFStringRef device_name_ref; autoconfig_params_t params = {{0}}; @@ -255,7 +256,10 @@ static void add_device(void* context, IOReturn result, connection->device_handle = device; connection->slot = MAX_USERS; - IOHIDDeviceOpen(device, kIOHIDOptionsTypeNone); + ret = IOHIDDeviceOpen(device, kIOHIDOptionsTypeNone); + + if (ret != kIOReturnSuccess) + goto error; /* Move the device's run loop to this thread. */ IOHIDDeviceScheduleWithRunLoop(device, CFRunLoopGetCurrent(), @@ -297,6 +301,9 @@ static void add_device(void* context, IOReturn result, input_config_autoconfigure_joypad(¶ms); RARCH_LOG("Port %d: %s.\n", connection->slot, connection->device_name); + +error: + return; } static void append_matching_dictionary(CFMutableArrayRef array,