summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2018-08-27 15:45:22 -0400
committerGravatar GitHub2018-08-27 15:45:22 -0400
commit887a9c5c2936371404dd94f3fa1d00aadee0102d (patch)
tree8f9dd696bab4241569c8b1ef4cf08809cf31a454 /src
parentMerge pull request #1176 from lioncash/info (diff)
parenthex_util: Replace logic_errors with LOG_CRITICAL (diff)
downloadyuzu-887a9c5c2936371404dd94f3fa1d00aadee0102d.tar.gz
yuzu-887a9c5c2936371404dd94f3fa1d00aadee0102d.tar.xz
yuzu-887a9c5c2936371404dd94f3fa1d00aadee0102d.zip
Merge pull request #1128 from DarkLordZach/malformed-hex-crash
hex_util: Replace logic_errors with LOG_CRITICAL
Diffstat (limited to 'src')
-rw-r--r--src/common/hex_util.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/common/hex_util.cpp b/src/common/hex_util.cpp
index 609144def..8e0a9e46f 100644
--- a/src/common/hex_util.cpp
+++ b/src/common/hex_util.cpp
@@ -3,6 +3,7 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "common/hex_util.h" 5#include "common/hex_util.h"
6#include "common/logging/log.h"
6 7
7namespace Common { 8namespace Common {
8 9
@@ -13,18 +14,29 @@ u8 ToHexNibble(char c1) {
13 return c1 - 87; 14 return c1 - 87;
14 if (c1 >= 48 && c1 <= 57) 15 if (c1 >= 48 && c1 <= 57)
15 return c1 - 48; 16 return c1 - 48;
16 throw std::logic_error("Invalid hex digit"); 17 LOG_ERROR(Common, "Invalid hex digit: 0x{:02X}", c1);
18 return 0;
17} 19}
18 20
19std::array<u8, 16> operator""_array16(const char* str, size_t len) { 21std::array<u8, 16> operator""_array16(const char* str, size_t len) {
20 if (len != 32) 22 if (len != 32) {
21 throw std::logic_error("Not of correct size."); 23 LOG_ERROR(Common,
24 "Attempting to parse string to array that is not of correct size (expected=32, "
25 "actual={}).",
26 len);
27 return {};
28 }
22 return HexStringToArray<16>(str); 29 return HexStringToArray<16>(str);
23} 30}
24 31
25std::array<u8, 32> operator""_array32(const char* str, size_t len) { 32std::array<u8, 32> operator""_array32(const char* str, size_t len) {
26 if (len != 64) 33 if (len != 64) {
27 throw std::logic_error("Not of correct size."); 34 LOG_ERROR(Common,
35 "Attempting to parse string to array that is not of correct size (expected=64, "
36 "actual={}).",
37 len);
38 return {};
39 }
28 return HexStringToArray<32>(str); 40 return HexStringToArray<32>(str);
29} 41}
30 42