From b70658e37dc3f983e1c64f351875adeb1b7f2e8b Mon Sep 17 00:00:00 2001 From: Martin Hartl Date: Sat, 20 Jun 2020 00:46:29 +0200 Subject: [PATCH] Asus USB: Fail detection if config table read fails --- .../AuraUSBController/AuraUSBController.cpp | 9 +++++++++ .../AuraUSBController/AuraUSBControllerDetect.cpp | 14 +++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Controllers/AuraUSBController/AuraUSBController.cpp b/Controllers/AuraUSBController/AuraUSBController.cpp index be5da066b..ccac4e1ed 100644 --- a/Controllers/AuraUSBController/AuraUSBController.cpp +++ b/Controllers/AuraUSBController/AuraUSBController.cpp @@ -9,6 +9,7 @@ #include "AuraUSBController.h" #include +#include AuraUSBController::AuraUSBController(hid_device* dev_handle) { @@ -76,6 +77,14 @@ void AuraUSBController::GetConfigTable() config_table[i + 5]); } } + else + { + if(dev) + { + hid_close(dev); + } + throw std::runtime_error("Could not read config table"); + } } void AuraUSBController::GetFirmwareVersion() diff --git a/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp b/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp index f3795b886..d1bf143b9 100644 --- a/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp +++ b/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp @@ -3,6 +3,7 @@ #include "RGBController.h" #include "RGBController_AuraUSB.h" #include +#include #include #define AURA_USB_VID 0x0B05 @@ -59,11 +60,18 @@ void DetectAuraUSBControllers(std::vector& rgb_controllers) if( dev ) { - AuraMainboardController* controller = new AuraMainboardController(dev); + try + { + AuraMainboardController* controller = new AuraMainboardController(dev); - RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller); + RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller); - rgb_controllers.push_back(rgb_controller); + rgb_controllers.push_back(rgb_controller); + } + catch(std::runtime_error&) + { + // reading the config table failed + } } } }