diff options
author | Maxim Ostapenko <m.ostapenko@samsung.com> | 2016-06-10 12:57:14 +0000 |
---|---|---|
committer | Maxim Ostapenko <chefmax@gcc.gnu.org> | 2016-06-10 15:57:14 +0300 |
commit | 7cfa10f33c57e7de87517360e42700bbfc97ef58 (patch) | |
tree | 7eeb6904969950f8b4667881368ec5fae1d03df8 /gcc/varasm.c | |
parent | aade5c72c6adb395d2bddb0d08c6626d537a1714 (diff) | |
download | gcc-7cfa10f33c57e7de87517360e42700bbfc97ef58.zip gcc-7cfa10f33c57e7de87517360e42700bbfc97ef58.tar.gz gcc-7cfa10f33c57e7de87517360e42700bbfc97ef58.tar.bz2 |
re PR sanitizer/71480 (ASan should align string constants to shadow granularity.)
2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
PR sanitizer/71480
* varasm.c (place_block_symbol): Adjust alignment for asan protected
STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
* c-c++-common/asan/pr71480.c: New test.
From-SVN: r237306
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 4a7124e..de8bcd6 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -7201,7 +7201,11 @@ place_block_symbol (rtx symbol) if ((flag_sanitize & SANITIZE_ADDRESS) && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST && asan_protect_global (DECL_INITIAL (decl))) - size += asan_red_zone_size (size); + { + size += asan_red_zone_size (size); + alignment = MAX (alignment, + ASAN_RED_ZONE_SIZE * BITS_PER_UNIT); + } } else { |