summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2018-02-12 09:20:59 +0100
committerSzczepan Zalega <szczepan@nitrokey.com>2018-02-12 09:22:47 +0100
commit0c4f00c6198246a2fe543cabdc3da3629a835cbe (patch)
tree018bd5f0ab3fe6d2ffb00a51454a352694e5da9a
parentc4aaf8e9d3763985bad2025dc88cd80e6b26af80 (diff)
downloadlibnitrokey-0c4f00c6198246a2fe543cabdc3da3629a835cbe.tar.gz
libnitrokey-0c4f00c6198246a2fe543cabdc3da3629a835cbe.tar.bz2
Use strnlen to determine string length
strnlen stops scanning after reaching big_string_size and returns last position in the searched string. If a string terminator is not found then the big_string_size is returned hence the modification of the later size-checking condition. Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
-rw-r--r--misc.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/misc.cc b/misc.cc
index eaaad50..59185f3 100644
--- a/misc.cc
+++ b/misc.cc
@@ -34,10 +34,10 @@ 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>();