From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1944) id 783373857364; Fri, 5 Aug 2022 19:35:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 783373857364 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 uintptr_t in alloc_buffer X-Act-Checkin: glibc X-Git-Author: Szabolcs Nagy X-Git-Refname: refs/heads/arm/morello/main X-Git-Oldrev: 4064e7a4fc027aef0f023dc93fe436a512b1aaf9 X-Git-Newrev: 84068c087ba210a694aa656f6c873f4d7daa84d0 Message-Id: <20220805193545.783373857364@sourceware.org> Date: Fri, 5 Aug 2022 19:35:45 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Aug 2022 19:35:45 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=84068c087ba210a694aa656f6c873f4d7daa84d0 commit 84068c087ba210a694aa656f6c873f4d7daa84d0 Author: Szabolcs Nagy Date: Wed Mar 16 12:09:15 2022 +0000 cheri: malloc: use uintptr_t in alloc_buffer This is the right type as the values hold pointers. Diff: --- include/alloc_buffer.h | 11 ++++++----- malloc/alloc_buffer_alloc_array.c | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/alloc_buffer.h b/include/alloc_buffer.h index be33e8b68c..b0d50289f0 100644 --- a/include/alloc_buffer.h +++ b/include/alloc_buffer.h @@ -82,6 +82,7 @@ #include #include #include +#include /* struct alloc_buffer objects refer to a region of bytes in memory of a fixed size. The functions below can be used to allocate single @@ -248,9 +249,9 @@ __alloc_buffer_alloc (struct alloc_buffer *buf, size_t size, size_t align) if (size == 1 && align == 1) return alloc_buffer_alloc_bytes (buf, size); - size_t current = buf->__alloc_buffer_current; - size_t aligned = roundup (current, align); - size_t new_current = aligned + size; + uintptr_t current = buf->__alloc_buffer_current; + uintptr_t aligned = roundup (current, align); + uintptr_t new_current = aligned + size; if (aligned >= current /* No overflow in align step. */ && new_current >= size /* No overflow in size computation. */ && new_current <= buf->__alloc_buffer_end) /* Room in buffer. */ @@ -282,8 +283,8 @@ __alloc_buffer_next (struct alloc_buffer *buf, size_t align) if (align == 1) return (const void *) buf->__alloc_buffer_current; - size_t current = buf->__alloc_buffer_current; - size_t aligned = roundup (current, align); + uintptr_t current = buf->__alloc_buffer_current; + uintptr_t aligned = roundup (current, align); if (aligned >= current /* No overflow in align step. */ && aligned <= buf->__alloc_buffer_end) /* Room in buffer. */ { diff --git a/malloc/alloc_buffer_alloc_array.c b/malloc/alloc_buffer_alloc_array.c index d8c08d03ea..b5f32bb630 100644 --- a/malloc/alloc_buffer_alloc_array.c +++ b/malloc/alloc_buffer_alloc_array.c @@ -23,12 +23,12 @@ void * __libc_alloc_buffer_alloc_array (struct alloc_buffer *buf, size_t element_size, size_t align, size_t count) { - size_t current = buf->__alloc_buffer_current; + uintptr_t current = buf->__alloc_buffer_current; /* The caller asserts that align is a power of two. */ - size_t aligned = ALIGN_UP (current, align); + uintptr_t aligned = ALIGN_UP (current, align); size_t size; bool overflow = __builtin_mul_overflow (element_size, count, &size); - size_t new_current = aligned + size; + uintptr_t new_current = aligned + size; if (!overflow /* Multiplication did not overflow. */ && aligned >= current /* No overflow in align step. */ && new_current >= size /* No overflow in size computation. */