From 5afb9cc5c44ea143141689e26f84fc7036accb7e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 12 Aug 2014 02:48:52 -0400 Subject: [PATCH] Common: Fix AsciiToHex returning true on overflow values We should be checking errno against ERANGE. --- Source/Core/Common/StringUtil.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp index 16281ac91f..59fcb4131d 100644 --- a/Source/Core/Common/StringUtil.cpp +++ b/Source/Core/Common/StringUtil.cpp @@ -28,12 +28,18 @@ // faster than sscanf bool AsciiToHex(const std::string& _szValue, u32& result) { + // Set errno to a good state. + errno = 0; + char *endptr = nullptr; const u32 value = strtoul(_szValue.c_str(), &endptr, 16); if (!endptr || *endptr) return false; + if (errno == ERANGE) + return false; + result = value; return true; }