From 3b9e384ecb6e06c5f0ebc2dcf6aae6d82e35ae19 Mon Sep 17 00:00:00 2001 From: conrad Date: Wed, 17 Nov 2021 15:01:13 +1000 Subject: [PATCH] prevent loading garbage --- include/armadillo_bits/diskio_meat.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/include/armadillo_bits/diskio_meat.hpp b/include/armadillo_bits/diskio_meat.hpp index c9b835f2..8be6c6ab 100644 --- a/include/armadillo_bits/diskio_meat.hpp +++ b/include/armadillo_bits/diskio_meat.hpp @@ -469,7 +469,16 @@ diskio::convert_token(eT& val, const std::string& token) { // unsigned integer - if(str[0] == '-') { val = eT(0); return true; } + if((str[0] == '-') && (N >= 2)) + { + const char* str_offset1 = &(str[1]); + + std::strtoull(str_offset1, &endptr, 10); + + if(str_offset1 == endptr) { return false; } + + val = eT(0); return true; + } val = eT( std::strtoull(str, &endptr, 10) ); }