summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/misc.cc b/misc.cc
index 7a54a94..59185f3 100644
--- a/misc.cc
+++ b/misc.cc
@@ -34,16 +34,17 @@ namespace misc {
::std::vector<uint8_t> hex_string_to_byte(const char* hexString){
- const size_t big_string_size = 256; //arbitrary 'big' number
- const size_t s_size = strlen(hexString);
+ const size_t big_string_size = 257; //arbitrary 'big' number
+ const size_t s_size = strnlen(hexString, big_string_size);
const size_t d_size = s_size/2;
- if (s_size%2!=0 || s_size>big_string_size){
+ if (s_size%2!=0 || s_size>=big_string_size){
throw InvalidHexString(0);
}
auto data = ::std::vector<uint8_t>();
data.reserve(d_size);
- char buf[2];
+ char buf[3];
+ buf[2] = '\0';
for(size_t i=0; i<s_size; i++){
char c = hexString[i];