mirror of
https://github.com/shadps4-emu/ext-cryptopp.git
synced 2025-02-21 05:41:12 +00:00
Fixed validation failure due to collision of type sizes between int and long
This commit is contained in:
parent
5a35640912
commit
e5171450e2
52
validat0.cpp
52
validat0.cpp
@ -336,20 +336,26 @@ bool TestConversion()
|
||||
{
|
||||
signed int v; bool p = true;
|
||||
{
|
||||
signed long v1 = std::numeric_limits<signed long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long v2 = std::numeric_limits<signed long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long v3 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(signed int) != sizeof(signed long))
|
||||
{
|
||||
signed long v1 = std::numeric_limits<signed long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long v2 = std::numeric_limits<signed long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long v3 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(signed int) != sizeof(signed long long))
|
||||
{
|
||||
signed long long v1 = std::numeric_limits<signed long long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long long v2 = std::numeric_limits<signed long long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long long v3 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " signed int overflow" << std::endl;
|
||||
pass &= p;
|
||||
}
|
||||
{
|
||||
signed long long v1 = std::numeric_limits<signed long long>::min(); p = !SafeConvert(v1, v) && p;
|
||||
signed long long v2 = std::numeric_limits<signed long long>::max(); p = !SafeConvert(v2, v) && p;
|
||||
unsigned long long v3 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v3, v) && p;
|
||||
}
|
||||
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " signed int overflow" << std::endl;
|
||||
pass &= p;
|
||||
}
|
||||
|
||||
|
||||
/********** unsigned int **********/
|
||||
{
|
||||
unsigned int v1, v2; bool p = true;
|
||||
@ -366,14 +372,20 @@ bool TestConversion()
|
||||
{
|
||||
unsigned int v; bool p = true;
|
||||
{
|
||||
unsigned long v1 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(unsigned int) != sizeof(unsigned long))
|
||||
{
|
||||
unsigned long v1 = std::numeric_limits<unsigned long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
// Guard i686 collision of type sizes
|
||||
if(sizeof(unsigned int) != sizeof(unsigned long long))
|
||||
{
|
||||
unsigned long long v1 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " unsigned int overflow" << std::endl;
|
||||
pass &= p;
|
||||
}
|
||||
{
|
||||
unsigned long long v1 = std::numeric_limits<unsigned long long>::max(); p = !SafeConvert(v1, v) && p;
|
||||
}
|
||||
|
||||
std::cout << (!p ? "FAILED " : "passed ") << " unsigned int overflow" << std::endl;
|
||||
pass &= p;
|
||||
}
|
||||
|
||||
/********** signed long **********/
|
||||
@ -393,6 +405,7 @@ bool TestConversion()
|
||||
|
||||
/********** signed long overflow **********/
|
||||
{
|
||||
// Guard x86_64 collision of type sizes
|
||||
if(sizeof(signed long) != sizeof(signed long long))
|
||||
{
|
||||
signed long v; bool p = true;
|
||||
@ -425,6 +438,7 @@ bool TestConversion()
|
||||
|
||||
/********** unsigned long overflow **********/
|
||||
{
|
||||
// Guard x86_64 collision of type sizes
|
||||
if(sizeof(unsigned long) != sizeof(unsigned long long))
|
||||
{
|
||||
unsigned long v; bool p = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user