diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2018-02-12 09:20:59 +0100 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2018-02-12 09:22:47 +0100 |
commit | 0c4f00c6198246a2fe543cabdc3da3629a835cbe (patch) | |
tree | 018bd5f0ab3fe6d2ffb00a51454a352694e5da9a /misc.cc | |
parent | c4aaf8e9d3763985bad2025dc88cd80e6b26af80 (diff) | |
download | libnitrokey-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>
Diffstat (limited to 'misc.cc')
-rw-r--r-- | misc.cc | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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>(); |