From 5b8c09c1240ca0df3d451bb5cb95d88602efd341 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue, 19 Jan 2016 13:00:02 +0100 Subject: [PATCH] string2Int: Barf on negative numbers for unsigned types --- src/libutil/util.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libutil/util.hh b/src/libutil/util.hh index cf93c6378..a889ef2f1 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -8,7 +8,7 @@ #include <unistd.h> #include <signal.h> #include <functional> - +#include <limits> #include <cstdio> #ifndef HAVE_STRUCT_DIRENT_D_TYPE @@ -359,6 +359,8 @@ bool statusOk(int status); /* Parse a string into an integer. */ template<class N> bool string2Int(const string & s, N & n) { + if (string(s, 0, 1) == "-" && !std::numeric_limits<N>::is_signed) + return false; std::istringstream str(s); str >> n; return str && str.get() == EOF; -- GitLab