From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1944) id 595F1385153C; Wed, 26 Oct 2022 15:11:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 595F1385153C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1666797083; bh=nYsfOcJ6WVAG7CneVkbUAe8O5UtLs/sm//bMQcd2npk=; h=From:To:Subject:Date:From; b=R//ji9fFcZauAqamHIGndudyuNhsMTbLWZSrnz2PQeTFPSRlJE7XjDg2M1A1Auz5o i7qusuNbQl4LftcauH4wYaNTysLZNPpD+qKuAvId2O7Cu6cHSMUzy0OcYQFtXsd4J0 2RKGcoOuQo2iSI2eYw4Vo9Hpw7v4yWbd9xsrIS2s= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Szabolcs Nagy To: glibc-cvs@sourceware.org Subject: [glibc/arm/morello/main] cheri: malloc: use intptr_t to preserve capabilities X-Act-Checkin: glibc X-Git-Author: Carlos Eduardo Seo X-Git-Refname: refs/heads/arm/morello/main X-Git-Oldrev: fe148f704fbc0664be391c264a6715456e1d0fa1 X-Git-Newrev: d9cef3a8673a8b773982f9e12fe08ed4cf906427 Message-Id: <20221026151123.595F1385153C@sourceware.org> Date: Wed, 26 Oct 2022 15:11:23 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d9cef3a8673a8b773982f9e12fe08ed4cf906427 commit d9cef3a8673a8b773982f9e12fe08ed4cf906427 Author: Carlos Eduardo Seo Date: Wed Jan 26 16:00:13 2022 -0300 cheri: malloc: use intptr_t to preserve capabilities Avoid integer casts and arithmetics that invalidates capabilities. Diff: --- malloc/arena.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/malloc/arena.c b/malloc/arena.c index 0a684a720d..b1f5b4117f 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -444,7 +444,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 (;; ) { @@ -518,7 +518,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) @@ -760,7 +760,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;