gpgscm: Avoid truncating pointers.
authorJustus Winter <justus@g10code.com>
Tue, 29 Nov 2016 12:31:38 +0000 (13:31 +0100)
committerJustus Winter <justus@g10code.com>
Tue, 29 Nov 2016 13:45:56 +0000 (14:45 +0100)
* tests/gpgscm/scheme.c (_alloc_cellseg): Avoid truncating pointers on
systems where sizeof(unsigned long) < sizeof(void *).

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgscm/scheme.c

index 8666548..30b5915 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <assert.h>
 #include <limits.h>
+#include <stdint.h>
 #include <float.h>
 #include <ctype.h>
 
@@ -615,8 +616,8 @@ _alloc_cellseg(scheme *sc, size_t len, void **alloc, pointer *cells)
   *alloc = cp;
 
   /* adjust in TYPE_BITS-bit boundary */
-  if (((unsigned long) cp) % adj != 0)
-    cp = (void *) (adj * ((unsigned long) cp / adj + 1));
+  if (((uintptr_t) cp) % adj != 0)
+    cp = (void *) (adj * ((uintptr_t) cp / adj + 1));
 
   *cells = cp;
   return 0;