cast pointers to uintptr_t for alignement check
authorMartin Willi <martin@strongswan.org>
Wed, 15 Jul 2009 08:07:15 +0000 (10:07 +0200)
committerMartin Willi <martin@strongswan.org>
Wed, 15 Jul 2009 08:39:45 +0000 (10:39 +0200)
src/libstrongswan/utils.c

index 73edb22..3058411 100644 (file)
@@ -20,6 +20,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <string.h>
 #include <stdio.h>
 #include <unistd.h>
+#include <stdint.h>
 #include <limits.h>
 #include <dirent.h>
 #include <time.h>
 #include <limits.h>
 #include <dirent.h>
 #include <time.h>
@@ -63,12 +64,12 @@ void memxor(u_int8_t dst[], u_int8_t src[], size_t n)
        int m, i;
        
        /* byte wise XOR until dst aligned */
        int m, i;
        
        /* byte wise XOR until dst aligned */
-       for (i = 0; (int)&dst[i] % sizeof(long); i++)
+       for (i = 0; (uintptr_t)&dst[i] % sizeof(long); i++)
        {
                dst[i] ^= src[i];
        }
        /* try to use words if src shares an aligment with dst */
        {
                dst[i] ^= src[i];
        }
        /* try to use words if src shares an aligment with dst */
-       switch (((int)&src[i] % sizeof(long)))
+       switch (((uintptr_t)&src[i] % sizeof(long)))
        {
                case 0:
                        for (m = n - sizeof(long); i <= m; i += sizeof(long))
        {
                case 0:
                        for (m = n - sizeof(long); i <= m; i += sizeof(long))