diff options
-rw-r--r-- | src/libutil/util.hh | 4 |
1 files changed, 3 insertions, 1 deletions
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; |