From ef0c2db0d6a9d324bca1f4d2d4478034a63d54a7 Mon Sep 17 00:00:00 2001 From: jakub Date: Sat, 1 Dec 2018 07:31:56 +0000 Subject: [PATCH] PR sanitizer/88289 * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up an off-by-one for BYTES_BIG_ENDIAN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266708 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/asan.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b215a9c63577..c84d6fa5c25a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2018-12-01 Jakub Jelinek + PR sanitizer/88289 + * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up + an off-by-one for BYTES_BIG_ENDIAN. + PR target/54589 * combine.c (find_split_point): For invalid memory address nonobj + obj + const, if reg + obj + const is valid addressing diff --git a/gcc/asan.c b/gcc/asan.c index 5d1d1dec064d..0530ddd00564 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -1326,7 +1326,7 @@ asan_redzone_buffer::flush_redzone_payload (void) for (unsigned i = 0; i < RZ_BUFFER_SIZE; i++) { unsigned char v - = m_shadow_bytes[BYTES_BIG_ENDIAN ? RZ_BUFFER_SIZE - i : i]; + = m_shadow_bytes[BYTES_BIG_ENDIAN ? RZ_BUFFER_SIZE - i - 1 : i]; val |= (unsigned HOST_WIDE_INT)v << (BITS_PER_UNIT * i); if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "%02x ", v); -- 2.47.2