From 9d6e045a3143f8eb31c5033c9c4be59cc2f73336 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 9 Aug 2016 15:15:17 +0200 Subject: Return error for too long string Signed-off-by: Szczepan Zalega --- NitrokeyManager.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'NitrokeyManager.cc') diff --git a/NitrokeyManager.cc b/NitrokeyManager.cc index 5baf7bd..c27de2b 100644 --- a/NitrokeyManager.cc +++ b/NitrokeyManager.cc @@ -2,15 +2,18 @@ #include #include #include "include/NitrokeyManager.h" +#include "include/TooLongStringException.h" namespace nitrokey{ template void strcpyT(T& dest, const char* src){ assert(src != nullptr); - const size_t s = sizeof dest; - assert(strlen(src) <= s); // FIXME should throw an exception to abort when too long string appears - strncpy((char*) &dest, src, s); + const size_t s_dest = sizeof dest; + if (strlen(src) > s_dest){ + throw TooLongStringException(strlen(src), s_dest, src); + } + strncpy((char*) &dest, src, s_dest); } template -- cgit v1.2.1