From 121a1b7f49ed16db4caf83bda4f08a981064aa9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=B6glinger-Stelzer?= Date: Wed, 2 Oct 2019 15:06:42 +0200 Subject: [PATCH] Checked for null parameter in vigem_target_x360_get_user_index Added error code VIGEM_ERROR_INVALID_PARAMETER --- include/ViGEm/Client.h | 4 +++- src/ViGEmClient.cpp | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/ViGEm/Client.h b/include/ViGEm/Client.h index 48aaa45..3a85a60 100644 --- a/include/ViGEm/Client.h +++ b/include/ViGEm/Client.h @@ -63,7 +63,9 @@ extern "C" { VIGEM_ERROR_CALLBACK_NOT_FOUND = 0xE0000011, VIGEM_ERROR_BUS_ALREADY_CONNECTED = 0xE0000012, VIGEM_ERROR_BUS_INVALID_HANDLE = 0xE0000013, - VIGEM_ERROR_XUSB_USERINDEX_OUT_OF_RANGE = 0xE0000014 + VIGEM_ERROR_XUSB_USERINDEX_OUT_OF_RANGE = 0xE0000014, + VIGEM_ERROR_INVALID_PARAMETER = 0xE0000015 + } VIGEM_ERROR; /** diff --git a/src/ViGEmClient.cpp b/src/ViGEmClient.cpp index fa93121..daf75c7 100644 --- a/src/ViGEmClient.cpp +++ b/src/ViGEmClient.cpp @@ -907,6 +907,9 @@ VIGEM_ERROR vigem_target_x360_get_user_index( if (target->SerialNo == 0 || target->Type != Xbox360Wired) return VIGEM_ERROR_INVALID_TARGET; + if (!index) + return VIGEM_ERROR_INVALID_PARAMETER; + DWORD transferred = 0; OVERLAPPED lOverlapped = { 0 }; lOverlapped.hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr);