diff options
author | Alan Modra <amodra@gmail.com> | 2023-08-03 09:00:05 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2023-08-03 21:19:57 +0930 |
commit | b43e801e28550653ecef2b7e6b15125516ab1a58 (patch) | |
tree | 4bab9cb8bf63ccb949abe75ce167973e43e6297c /gas/config | |
parent | ebfd369c3e9c18318c46d4ddc3ad016905d975ea (diff) | |
download | binutils-b43e801e28550653ecef2b7e6b15125516ab1a58.zip binutils-b43e801e28550653ecef2b7e6b15125516ab1a58.tar.gz binutils-b43e801e28550653ecef2b7e6b15125516ab1a58.tar.bz2 |
arm: sanitizer stringop-overflow
In function 'memset',
inlined from 'create_unwind_entry' at /home/alan/src/binutils-gdb/gas/config/tc-arm.c:27881:3:
/usr/include/bits/string_fortified.h:59:10: error: '__builtin_memset' specified size between 2147483652 and 4294967295 exceeds maximum object size 2147483647 [-Werror=stringop-overflow=]
59 | return __builtin___memset_chk (__dest, __ch, __len,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 | __glibc_objsize0 (__dest));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
* config/tc-arm.c (create_unwind_entry): Return after bad size,
and bad opcode count.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index c0f6215..f912fb2 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -27828,7 +27828,10 @@ create_unwind_entry (int have_data) if (unwind.personality_index == 0) { if (unwind.opcode_count > 3) - as_bad (_("too many unwind opcodes for personality routine 0")); + { + as_bad (_("too many unwind opcodes for personality routine 0")); + return 1; + } if (!have_data) { @@ -27869,7 +27872,10 @@ create_unwind_entry (int have_data) size = (size + 3) >> 2; if (size > 0xff) - as_bad (_("too many unwind opcodes")); + { + as_bad (_("too many unwind opcodes")); + return 1; + } frag_align (2, 0, 0); record_alignment (now_seg, 2); |