From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1944) id 6A9433851152; Wed, 26 Oct 2022 15:11:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A9433851152 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1666797088; bh=CmzoKplHygl6fbR7w2W56De1WTz6PELp/4gCRIVdsFw=; h=From:To:Subject:Date:From; b=VSgRteJG2bWFQ11L3OdiPP6Zg5FtV1wX4JXEdrbMMrig7YHlkeOTzA9i7kwdewVfF wHv25cI3dFHCen8OYkcRC9UQli1Yo7ur1bwrk0KQBpHrH+x1uUG5o1RrxPWAbl+3BP l93Z/stII6y5c7JwZtUFnVh8+Fe5FCKWGb45BwKY= 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: d9cef3a8673a8b773982f9e12fe08ed4cf906427 X-Git-Newrev: 5a25980484b50497567c2842034a6015f7b55222 Message-Id: <20221026151128.6A9433851152@sourceware.org> Date: Wed, 26 Oct 2022 15:11:28 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5a25980484b50497567c2842034a6015f7b55222 commit 5a25980484b50497567c2842034a6015f7b55222 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. */