mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
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 <siddhesh@sourceware.org>
This commit is contained in:
parent
72e84d1db2
commit
84ea6ea24b
@ -95,7 +95,9 @@ tests-exclude-mcheck = tst-mallocstate \
|
|||||||
tst-malloc_info \
|
tst-malloc_info \
|
||||||
tst-memalign \
|
tst-memalign \
|
||||||
tst-posix_memalign \
|
tst-posix_memalign \
|
||||||
tst-realloc
|
tst-realloc \
|
||||||
|
tst-pvalloc-fortify \
|
||||||
|
tst-reallocarray
|
||||||
|
|
||||||
tests-mcheck = $(filter-out $(tests-exclude-mcheck), $(tests))
|
tests-mcheck = $(filter-out $(tests-exclude-mcheck), $(tests))
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#ifndef _MALLOC_INTERNAL
|
#ifndef _MALLOC_INTERNAL
|
||||||
# define _MALLOC_INTERNAL
|
# define _MALLOC_INTERNAL
|
||||||
# include <malloc.h>
|
# include <malloc.h>
|
||||||
|
# include <malloc-size.h>
|
||||||
# include <mcheck.h>
|
# include <mcheck.h>
|
||||||
# include <stdint.h>
|
# include <stdint.h>
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
@ -53,7 +54,7 @@ struct hdr
|
|||||||
struct hdr *next;
|
struct hdr *next;
|
||||||
void *block; /* Real block allocated, for memalign. */
|
void *block; /* Real block allocated, for memalign. */
|
||||||
unsigned long int magic2; /* Extra, keeps us doubleword aligned. */
|
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.
|
/* This is the beginning of the list of all memory blocks allocated.
|
||||||
It is only constructed if the pedantic testing is requested. */
|
It is only constructed if the pedantic testing is requested. */
|
||||||
|
@ -5,10 +5,6 @@ asm-CPPFLAGS += -DGAS_SYNTAX
|
|||||||
# The i386 `long double' is a distinct type we support.
|
# The i386 `long double' is a distinct type we support.
|
||||||
long-double-fcts = yes
|
long-double-fcts = yes
|
||||||
|
|
||||||
ifeq ($(subdir),malloc)
|
|
||||||
tests-exclude-mcheck += tst-mallocalign1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(subdir),math)
|
ifeq ($(subdir),math)
|
||||||
# These functions change the rounding mode internally and need to
|
# These functions change the rounding mode internally and need to
|
||||||
# update both the SSE2 rounding mode and the 387 rounding mode. See
|
# update both the SSE2 rounding mode and the 387 rounding mode. See
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
ifeq ($(subdir),malloc)
|
|
||||||
tests-exclude-mcheck += tst-mallocalign1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(subdir),math)
|
ifeq ($(subdir),math)
|
||||||
# Since x32 returns 32-bit long int and 64-bit long long int in the
|
# 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
|
# same 64-bit register, we make the 32b-bit lround an alias of the
|
||||||
|
Loading…
Reference in New Issue
Block a user