From: Juergen Perlinger Date: Sat, 14 Nov 2015 00:01:05 +0000 (+0100) Subject: [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62c7790ae3574f9f30e0901a7c660bd745c19a14;p=thirdparty%2Fntp.git [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets - fix warnings in test cases bk: 564679c1K_wp1yrP36cryyqHSrl7ug --- diff --git a/tests/libntp/a_md5encrypt.c b/tests/libntp/a_md5encrypt.c index a7912ca40..d8e7ab93e 100644 --- a/tests/libntp/a_md5encrypt.c +++ b/tests/libntp/a_md5encrypt.c @@ -16,14 +16,25 @@ u_long current_time = 4; * Example packet with MD5 hash calculated manually. */ const int keytype = KEY_TYPE_MD5; -const char *key = "abcdefgh"; +const u_char *key = (const u_char*)"abcdefgh"; const u_short keyLength = 8; -const char *packet = "ijklmnopqrstuvwx"; +const u_char *packet = (const u_char*)"ijklmnopqrstuvwx"; #define packetLength 16 #define keyIdLength 4 #define digestLength 16 -const int totalLength = packetLength + keyIdLength + digestLength; -const char *expectedPacket = "ijklmnopqrstuvwx\0\0\0\0\x0c\x0e\x84\xcf\x0b\xb7\xa8\x68\x8e\x52\x38\xdb\xbc\x1c\x39\x53"; +#define totalLength (packetLength + keyIdLength + digestLength) +union { + u_char u8 [totalLength]; + uint32_t u32[1]; +} expectedPacket = { + "ijklmnopqrstuvwx\0\0\0\0\x0c\x0e\x84\xcf\x0b\xb7\xa8\x68\x8e\x52\x38\xdb\xbc\x1c\x39\x53" +}; +union { + u_char u8 [totalLength]; + uint32_t u32[1]; +} invalidPacket = { + "ijklmnopqrstuvwx\0\0\0\0\x0c\x0e\x84\xcf\x0b\xb7\xa8\x68\x8e\x52\x38\xdb\xbc\x1c\x39\x54" +}; void test_Encrypt(void); @@ -35,7 +46,7 @@ void test_IPv6AddressToRefId(void); void test_Encrypt(void) { - char *packetPtr; + u_int32 *packetPtr; int length; packetPtr = emalloc(totalLength * sizeof(*packetPtr)); @@ -45,12 +56,12 @@ test_Encrypt(void) { cache_secretsize = keyLength; - length = MD5authencrypt(keytype, (u_char*)key, (u_int32*)packetPtr, packetLength); + length = MD5authencrypt(keytype, key, packetPtr, packetLength); - TEST_ASSERT_TRUE(MD5authdecrypt(keytype, (u_char*)key, (u_int32*)packetPtr, packetLength, length)); + TEST_ASSERT_TRUE(MD5authdecrypt(keytype, key, packetPtr, packetLength, length)); TEST_ASSERT_EQUAL(20, length); - TEST_ASSERT_EQUAL_MEMORY(expectedPacket, packetPtr, totalLength); + TEST_ASSERT_EQUAL_MEMORY(expectedPacket.u8, packetPtr, totalLength); free(packetPtr); } @@ -58,17 +69,13 @@ test_Encrypt(void) { void test_DecryptValid(void) { cache_secretsize = keyLength; - - TEST_ASSERT_TRUE(MD5authdecrypt(keytype, (u_char*)key, (u_int32*)expectedPacket, packetLength, 20)); + TEST_ASSERT_TRUE(MD5authdecrypt(keytype, key, expectedPacket.u32, packetLength, 20)); } void test_DecryptInvalid(void) { cache_secretsize = keyLength; - - const char *invalidPacket = "ijklmnopqrstuvwx\0\0\0\0\x0c\x0e\x84\xcf\x0b\xb7\xa8\x68\x8e\x52\x38\xdb\xbc\x1c\x39\x54"; - - TEST_ASSERT_FALSE(MD5authdecrypt(keytype, (u_char*)key, (u_int32*)invalidPacket, packetLength, 20)); + TEST_ASSERT_FALSE(MD5authdecrypt(keytype, key, invalidPacket.u32, packetLength, 20)); } void @@ -87,6 +94,7 @@ test_IPv4AddressToRefId(void) { void test_IPv6AddressToRefId(void) { + const int expected = 0x75cffd52; const struct in6_addr address = { { { 0x20, 0x01, 0x0d, 0xb8, 0x85, 0xa3, 0x08, 0xd3, @@ -99,11 +107,11 @@ test_IPv6AddressToRefId(void) { addr.sa6.sin6_addr = address; - const int expected = 0x75cffd52; #if 0 TEST_ASSERT_EQUAL(expected, addr2refid(&addr)); #else + (void)expected; TEST_IGNORE_MESSAGE("Skipping because of big endian problem?"); #endif } diff --git a/tests/libntp/authkeys.c b/tests/libntp/authkeys.c index 596122e3d..217016dd4 100644 --- a/tests/libntp/authkeys.c +++ b/tests/libntp/authkeys.c @@ -130,5 +130,5 @@ test_EmptyKey(void) { const char* KEY = ""; - TEST_ASSERT_FALSE(authusekey(KEYNO, KEYTYPE, (u_char*)KEY)); + TEST_ASSERT_FALSE(authusekey(KEYNO, KEYTYPE, (const u_char*)KEY)); } diff --git a/tests/libntp/run-a_md5encrypt.c b/tests/libntp/run-a_md5encrypt.c index 122ed931c..a4bfa36dc 100644 --- a/tests/libntp/run-a_md5encrypt.c +++ b/tests/libntp/run-a_md5encrypt.c @@ -52,11 +52,11 @@ int main(int argc, char *argv[]) { progname = argv[0]; UnityBegin("a_md5encrypt.c"); - RUN_TEST(test_Encrypt, 29); - RUN_TEST(test_DecryptValid, 30); - RUN_TEST(test_DecryptInvalid, 31); - RUN_TEST(test_IPv4AddressToRefId, 32); - RUN_TEST(test_IPv6AddressToRefId, 33); + RUN_TEST(test_Encrypt, 40); + RUN_TEST(test_DecryptValid, 41); + RUN_TEST(test_DecryptInvalid, 42); + RUN_TEST(test_IPv4AddressToRefId, 43); + RUN_TEST(test_IPv6AddressToRefId, 44); return (UnityEnd()); } diff --git a/tests/ntpd/rc_cmdlength.c b/tests/ntpd/rc_cmdlength.c index e3d599faf..dfe53167b 100644 --- a/tests/ntpd/rc_cmdlength.c +++ b/tests/ntpd/rc_cmdlength.c @@ -3,6 +3,7 @@ #include "ntp.h" #include "ntp_calendar.h" #include "ntp_stdlib.h" +#include "rc_cmdlength.h" #include "unity.h" diff --git a/tests/ntpd/run-rc_cmdlength.c b/tests/ntpd/run-rc_cmdlength.c index c6fb7ccf7..927a45e73 100644 --- a/tests/ntpd/run-rc_cmdlength.c +++ b/tests/ntpd/run-rc_cmdlength.c @@ -26,6 +26,7 @@ #include "ntp.h" #include "ntp_calendar.h" #include "ntp_stdlib.h" +#include "rc_cmdlength.h" #include "test-libntp.h" #include @@ -51,7 +52,7 @@ int main(int argc, char *argv[]) { progname = argv[0]; UnityBegin("rc_cmdlength.c"); - RUN_TEST(test_EvaluateCommandLength, 15); + RUN_TEST(test_EvaluateCommandLength, 16); return (UnityEnd()); }