From cb671b2a2750f731f161ae5ac9f4a06d843b26b0 Mon Sep 17 00:00:00 2001 From: Echelon9 Date: Mon, 8 Oct 2012 01:13:30 +1100 Subject: [PATCH] As XPP_DEVICE_TYPE contains Reserved[3] it has elements numbered [0-2], so ensure we don't access memory outside the array bounds --- src/CxbxKrnl/EmuXapi.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CxbxKrnl/EmuXapi.cpp b/src/CxbxKrnl/EmuXapi.cpp index 55e71d88a..fabbee9dc 100644 --- a/src/CxbxKrnl/EmuXapi.cpp +++ b/src/CxbxKrnl/EmuXapi.cpp @@ -485,10 +485,10 @@ DWORD WINAPI XTL::EmuXGetDevices DWORD ret = 0; - if(DeviceType->Reserved[0] == 0 && DeviceType->Reserved[1] == 0 && DeviceType->Reserved[2] == 0 && DeviceType->Reserved[3] == 0) + if(DeviceType->Reserved[0] == 0 && DeviceType->Reserved[1] == 0 && DeviceType->Reserved[2] == 0) ret = (1 << 0); // Return 1 Controller else - EmuWarning("Unknown DeviceType (0x%.08X, 0x%.08X, 0x%.08X, 0x%.08X)\n", DeviceType->Reserved[0], DeviceType->Reserved[1], DeviceType->Reserved[2], DeviceType->Reserved[3]); + EmuWarning("Unknown DeviceType (0x%.08X, 0x%.08X, 0x%.08X)\n", DeviceType->Reserved[0], DeviceType->Reserved[1], DeviceType->Reserved[2]); EmuSwapFS(); // XBox FS @@ -521,7 +521,7 @@ BOOL WINAPI XTL::EmuXGetDeviceChanges // Return 1 Controller Inserted initially, then no changes forever if(bFirst) { - if(DeviceType->Reserved[0] == 0 && DeviceType->Reserved[1] == 0 && DeviceType->Reserved[2] == 0 && DeviceType->Reserved[3] == 0) + if(DeviceType->Reserved[0] == 0 && DeviceType->Reserved[1] == 0 && DeviceType->Reserved[2] == 0) { *pdwInsertions = (1<<0); *pdwRemovals = 0; @@ -531,7 +531,7 @@ BOOL WINAPI XTL::EmuXGetDeviceChanges else { // TODO: What if it's not a controller? - EmuWarning("Unknown DeviceType (0x%.08X, 0x%.08X, 0x%.08X, 0x%.08X)\n", DeviceType->Reserved[0], DeviceType->Reserved[1], DeviceType->Reserved[2], DeviceType->Reserved[3]); + EmuWarning("Unknown DeviceType (0x%.08X, 0x%.08X, 0x%.08X)\n", DeviceType->Reserved[0], DeviceType->Reserved[1], DeviceType->Reserved[2]); } } else