From 86ee5600dc9f77bfef73f72b09e59ee3823c28a3 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 15 Jan 2013 22:27:49 +1300 Subject: [PATCH] Fix bug: reuse after free. static should not have been used here. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp index 49684ef5af..545002f914 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp @@ -787,9 +787,10 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) } else { - static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); - bool* wiiMoteConnected = new bool[s_Usb->m_WiiMotes.size()]; - for (unsigned int i = 0; i < s_Usb->m_WiiMotes.size(); i++) + CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); + size_t size = s_Usb->m_WiiMotes.size(); + bool* wiiMoteConnected = new bool[size]; + for (unsigned int i = 0; i < size; i++) wiiMoteConnected[i] = s_Usb->m_WiiMotes[i].IsConnected(); std::string tContentFile(m_ContentFile.c_str());