]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
authorJuergen Perlinger <perlinger@ntp.org>
Sat, 14 Nov 2015 00:01:05 +0000 (01:01 +0100)
committerJuergen Perlinger <perlinger@ntp.org>
Sat, 14 Nov 2015 00:01:05 +0000 (01:01 +0100)
 - fix warnings in test cases

bk: 564679c1K_wp1yrP36cryyqHSrl7ug

tests/libntp/a_md5encrypt.c
tests/libntp/authkeys.c
tests/libntp/run-a_md5encrypt.c
tests/ntpd/rc_cmdlength.c
tests/ntpd/run-rc_cmdlength.c

index a7912ca4074fd3fdeeeb13084602b4e6416377a5..d8e7ab93e1ffdc88554e2562184e9c6b74c4eac2 100644 (file)
@@ -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
 }
index 596122e3d59cf88187cafe962b1e3caccd60892e..217016dd45fbfd9b4a6ca53e475f9a035920db55 100644 (file)
@@ -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));
 }
index 122ed931cd917487e543c8f1410cb2b4338b4565..a4bfa36dc9288b861292dee5ac1f77f2de45c629 100644 (file)
@@ -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());
 }
index e3d599faf0eac073a1102c32e5c694fb4c14c651..dfe53167b67725da5bfad930ced2531efd290811 100644 (file)
@@ -3,6 +3,7 @@
 #include "ntp.h"
 #include "ntp_calendar.h"
 #include "ntp_stdlib.h"
+#include "rc_cmdlength.h"
 
 #include "unity.h"
 
index c6fb7ccf7937e78a4396ca314f73dea648674b13..927a45e73a4ad7ba5718fcfaeecb25e3f8254fdd 100644 (file)
@@ -26,6 +26,7 @@
 #include "ntp.h"
 #include "ntp_calendar.h"
 #include "ntp_stdlib.h"
+#include "rc_cmdlength.h"
 #include "test-libntp.h"
 #include <string.h>
 
@@ -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());
 }