From 703b3b42347a0cdc239669f95b3e1c3cc7e9f7bd Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 17 Nov 2015 21:56:31 -0500 Subject: [PATCH] [ROM Browser] Do not strtoul(very large strings). --- Source/Project64/User Interface/Rom Browser Class.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/Project64/User Interface/Rom Browser Class.cpp b/Source/Project64/User Interface/Rom Browser Class.cpp index 5be2f84f8..abe8e3142 100644 --- a/Source/Project64/User Interface/Rom Browser Class.cpp +++ b/Source/Project64/User Interface/Rom Browser Class.cpp @@ -707,7 +707,12 @@ void CRomBrowser::FillRomList(strlist & FileList, const CPath & BaseDirectory, c for (int x = 0; x < 0x40; x += 4) { - *((DWORD *)&RomData[x]) = std::strtoul(&szHeader[x * 2], 0, 16); + const size_t delimit_offset = sizeof("FFFFFFFF") - 1; + const char backup_character = szHeader[2*x + delimit_offset]; + + szHeader[2*x + delimit_offset] = '\0'; + *(uint32_t *)&RomData[x] = std::strtoul(&szHeader[2*x], NULL, 16); + szHeader[2*x + delimit_offset] = backup_character; } WriteTrace(TraceDebug, __FUNCTION__ ": 14");