aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Eduardo Seo <carlos.seo@arm.com>2022-01-26 16:00:13 -0300
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2022-11-01 09:48:22 +0000
commitd08dec4ea7c9f8b1d734cc1ba80c7f70df2f2c25 (patch)
tree0e6955b9d80078e9709443a7053a2089dbd626ac
parentf4973d31bb0673bc6a5fc207713837f143920b01 (diff)
downloadglibc-d08dec4ea7c9f8b1d734cc1ba80c7f70df2f2c25.zip
glibc-d08dec4ea7c9f8b1d734cc1ba80c7f70df2f2c25.tar.gz
glibc-d08dec4ea7c9f8b1d734cc1ba80c7f70df2f2c25.tar.bz2
malloc: Use uintptr_t for pointer alignment
Avoid integer casts that assume unsigned long can represent pointers. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--malloc/arena.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/malloc/arena.c b/malloc/arena.c
index 074ecbc..f381f18 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -439,7 +439,7 @@ dump_heap (heap_info *heap)
fprintf (stderr, "Heap %p, size %10lx:\n", heap, (long) heap->size);
ptr = (heap->ar_ptr != (mstate) (heap + 1)) ?
(char *) (heap + 1) : (char *) (heap + 1) + sizeof (struct malloc_state);
- p = (mchunkptr) (((unsigned long) ptr + MALLOC_ALIGN_MASK) &
+ p = (mchunkptr) (((uintptr_t) ptr + MALLOC_ALIGN_MASK) &
~MALLOC_ALIGN_MASK);
for (;; )
{
@@ -513,7 +513,7 @@ alloc_new_heap (size_t size, size_t top_pad, size_t pagesize,
p1 = (char *) MMAP (0, max_size << 1, PROT_NONE, mmap_flags);
if (p1 != MAP_FAILED)
{
- p2 = (char *) (((unsigned long) p1 + (max_size - 1))
+ p2 = (char *) (((uintptr_t) p1 + (max_size - 1))
& ~(max_size - 1));
ul = p2 - p1;
if (ul)
@@ -752,7 +752,7 @@ _int_new_arena (size_t size)
/* Set up the top chunk, with proper alignment. */
ptr = (char *) (a + 1);
- misalign = (unsigned long) chunk2mem (ptr) & MALLOC_ALIGN_MASK;
+ misalign = (uintptr_t) chunk2mem (ptr) & MALLOC_ALIGN_MASK;
if (misalign > 0)
ptr += MALLOC_ALIGNMENT - misalign;
top (a) = (mchunkptr) ptr;