From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2206) id 5354A393D023; Tue, 13 Jul 2021 03:39:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5354A393D023 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Siddhesh Poyarekar To: glibc-cvs@sourceware.org Subject: [glibc/siddhesh/malloc-hooks] mcheck: Align struct hdr to MALLOC_ALIGNMENT bytes [BZ #28068] X-Act-Checkin: glibc X-Git-Author: H.J. Lu X-Git-Refname: refs/heads/siddhesh/malloc-hooks X-Git-Oldrev: 72e84d1db22203e01a43268de71ea8669eca2863 X-Git-Newrev: 2e1cf7bd711c3491b995977aa5a1c72c036e9b02 Message-Id: <20210713033928.5354A393D023@sourceware.org> Date: Tue, 13 Jul 2021 03:39:28 +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: Tue, 13 Jul 2021 03:39:28 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2e1cf7bd711c3491b995977aa5a1c72c036e9b02 commit 2e1cf7bd711c3491b995977aa5a1c72c036e9b02 Author: H.J. Lu Date: Mon Jul 12 14:41:48 2021 -0700 mcheck: Align struct hdr to MALLOC_ALIGNMENT bytes [BZ #28068] 1. Align struct hdr to MALLOC_ALIGNMENT bytes so that malloc hooks in libmcheck align memory to MALLOC_ALIGNMENT bytes. 2. Remove tst-mallocalign1 from tests-exclude-mcheck for i386 and x32. 3. Add tst-pvalloc-fortify and tst-reallocarray to tests-exclude-mcheck since they use malloc_usable_size (see BZ #22057). This fixed BZ #28068. Reviewed-by: Siddhesh Poyarekar Diff: --- malloc/Makefile | 4 +++- malloc/mcheck.c | 3 ++- sysdeps/i386/Makefile | 4 ---- sysdeps/x86_64/x32/Makefile | 4 ---- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/malloc/Makefile b/malloc/Makefile index b685ed6d61..47369b6084 100644 --- a/malloc/Makefile +++ b/malloc/Makefile @@ -95,7 +95,9 @@ tests-exclude-mcheck = tst-mallocstate \ tst-malloc_info \ tst-memalign \ tst-posix_memalign \ - tst-realloc + tst-realloc \ + tst-pvalloc-fortify \ + tst-reallocarray tests-mcheck = $(filter-out $(tests-exclude-mcheck), $(tests)) diff --git a/malloc/mcheck.c b/malloc/mcheck.c index 2a1fc645d4..d2efcfb742 100644 --- a/malloc/mcheck.c +++ b/malloc/mcheck.c @@ -20,6 +20,7 @@ #ifndef _MALLOC_INTERNAL # define _MALLOC_INTERNAL # include +# include # include # include # include @@ -53,7 +54,7 @@ struct hdr struct hdr *next; void *block; /* Real block allocated, for memalign. */ unsigned long int magic2; /* Extra, keeps us doubleword aligned. */ -}; +} __attribute__ ((aligned (MALLOC_ALIGNMENT))); /* This is the beginning of the list of all memory blocks allocated. It is only constructed if the pedantic testing is requested. */ diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile index 8fb65c0f17..a2e8c0b128 100644 --- a/sysdeps/i386/Makefile +++ b/sysdeps/i386/Makefile @@ -5,10 +5,6 @@ asm-CPPFLAGS += -DGAS_SYNTAX # The i386 `long double' is a distinct type we support. long-double-fcts = yes -ifeq ($(subdir),malloc) -tests-exclude-mcheck += tst-mallocalign1 -endif - ifeq ($(subdir),math) # These functions change the rounding mode internally and need to # update both the SSE2 rounding mode and the 387 rounding mode. See diff --git a/sysdeps/x86_64/x32/Makefile b/sysdeps/x86_64/x32/Makefile index 62919c79f1..8748956563 100644 --- a/sysdeps/x86_64/x32/Makefile +++ b/sysdeps/x86_64/x32/Makefile @@ -1,7 +1,3 @@ -ifeq ($(subdir),malloc) -tests-exclude-mcheck += tst-mallocalign1 -endif - ifeq ($(subdir),math) # Since x32 returns 32-bit long int and 64-bit long long int in the # same 64-bit register, we make the 32b-bit lround an alias of the