summaryrefslogtreecommitdiff
path: root/misc.h
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2015-07-29 22:37:36 -0400
committerJeffrey Walton <noloader@gmail.com>2015-07-29 22:37:36 -0400
commit414b673706b41cb9e898d9e16df1a53cd5727d83 (patch)
treee6a591845d3ed26c1972d5f5ba959d723ab3a726 /misc.h
parentd41009f1dc56e324000070b17f4444f9058abe07 (diff)
downloadcryptopp-git-414b673706b41cb9e898d9e16df1a53cd5727d83.tar.gz
Added test for T1 is signed
Diffstat (limited to 'misc.h')
-rw-r--r--misc.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/misc.h b/misc.h
index 084d22bd..8a450c3f 100644
--- a/misc.h
+++ b/misc.h
@@ -381,8 +381,14 @@ inline bool SafeConvert(T1 from, T2 &to)
// Fall through for T1 is unsigned
}
- if(from > static_cast<T1>(std::numeric_limits<T2>::max()))
+ // Handle unsigned greater
+ if(!std::numeric_limits<T1>::is_signed && from > static_cast<T1>(std::numeric_limits<T2>::max())) {
return false;
+ }
+ // Handle signed less
+ else if(from < static_cast<T1>(std::numeric_limits<T2>::min())) {
+ return false;
+ }
return true;
}