From f2e61275f229b5eefb7a4375b3025a0b5554089a Mon Sep 17 00:00:00 2001 From: Tim Kosse Date: Tue, 11 Aug 2015 14:01:02 +0200 Subject: [PATCH] Cast pointers to uintptr_t instead of unsigned {long,int}. On 64bit Windows, pointers are 64bit whereas both unsigned long and unsigned int are 32bit. Using uintptr_t avoids truncation. --- misc.c | 2 +- windows/winhandl.c | 8 ++++---- windows/winnet.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/misc.c b/misc.c index 0e1d622d..b1bfb361 100644 --- a/misc.c +++ b/misc.c @@ -853,7 +853,7 @@ void debug_memdump(const void *buf, int len, int L) if (L) { int delta; debug_printf("\t%d (0x%x) bytes:\n", len, len); - delta = 15 & (unsigned long int) p; + delta = 15 & (uintptr_t)p; p -= delta; len += delta; } diff --git a/windows/winhandl.c b/windows/winhandl.c index 7c282fc7..4746d1b4 100644 --- a/windows/winhandl.c +++ b/windows/winhandl.c @@ -411,9 +411,9 @@ static int handle_cmp_evtomain(void *av, void *bv) struct handle *a = (struct handle *)av; struct handle *b = (struct handle *)bv; - if ((unsigned)a->u.g.ev_to_main < (unsigned)b->u.g.ev_to_main) + if ((uintptr_t)a->u.g.ev_to_main < (uintptr_t)b->u.g.ev_to_main) return -1; - else if ((unsigned)a->u.g.ev_to_main > (unsigned)b->u.g.ev_to_main) + else if ((uintptr_t)a->u.g.ev_to_main > (uintptr_t)b->u.g.ev_to_main) return +1; else return 0; @@ -424,9 +424,9 @@ static int handle_find_evtomain(void *av, void *bv) HANDLE *a = (HANDLE *)av; struct handle *b = (struct handle *)bv; - if ((unsigned)*a < (unsigned)b->u.g.ev_to_main) + if ((uintptr_t)*a < (uintptr_t)b->u.g.ev_to_main) return -1; - else if ((unsigned)*a > (unsigned)b->u.g.ev_to_main) + else if ((uintptr_t)*a > (uintptr_t)b->u.g.ev_to_main) return +1; else return 0; diff --git a/windows/winnet.c b/windows/winnet.c index e1beb5d1..fa2de809 100644 --- a/windows/winnet.c +++ b/windows/winnet.c @@ -138,7 +138,7 @@ static int cmpfortree(void *av, void *bv) static int cmpforsearch(void *av, void *bv) { Actual_Socket b = (Actual_Socket) bv; - unsigned long as = (unsigned long) av, bs = (unsigned long) b->s; + uintptr_t as = (uintptr_t) av, bs = (uintptr_t) b->s; if (as < bs) return -1; if (as > bs) -- 2.45.2