diff options
author | Alan Modra <amodra@gmail.com> | 2020-01-08 11:42:36 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-01-08 21:51:32 +1030 |
commit | 030a2e78acf66c5c12e073ec3887a167da7a7195 (patch) | |
tree | a96dc0b6fda94acff746f176f72c21aa2beed27d /opcodes/z8kgen.c | |
parent | 4c6ee6465acc58f0f86c44668c4e862901186239 (diff) | |
download | fsf-binutils-gdb-030a2e78acf66c5c12e073ec3887a167da7a7195.zip fsf-binutils-gdb-030a2e78acf66c5c12e073ec3887a167da7a7195.tar.gz fsf-binutils-gdb-030a2e78acf66c5c12e073ec3887a167da7a7195.tar.bz2 |
ubsan: z8k: index 10 out of bounds for type 'unsigned int const[10]'
The fix is the additional ARRAY_SIZE test, the rest just tidies
variable types rather than adding a cast to avoid warnings.
opcodes/
* z8k-dis.c: Include libiberty.h
(instr_data_s): Make max_fetched unsigned.
(z8k_lookup_instr): Make nibl_index and tabl_index unsigned.
Don't exceed byte_info bounds.
(output_instr): Make num_bytes unsigned.
(unpack_instr): Likewise for nibl_count and loop.
* z8kgen.c (gas <opcode_entry_type>): Make noperands, length and
idx unsigned.
* z8k-opc.h: Regenerate.
gas/
* config/tc-z8k.c (md_begin): Make idx unsigned.
(get_specific): Likewise for this_index.
Diffstat (limited to 'opcodes/z8kgen.c')
-rw-r--r-- | opcodes/z8kgen.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/opcodes/z8kgen.c b/opcodes/z8kgen.c index a1b74ca..b72fcff 100644 --- a/opcodes/z8kgen.c +++ b/opcodes/z8kgen.c @@ -1290,9 +1290,9 @@ gas (void) printf (" void (*func) (void);\n"); printf (" unsigned int arg_info[4];\n"); printf (" unsigned int byte_info[%d];\n", BYTE_INFO_LEN); - printf (" int noperands;\n"); - printf (" int length;\n"); - printf (" int idx;\n"); + printf (" unsigned int noperands;\n"); + printf (" unsigned int length;\n"); + printf (" unsigned int idx;\n"); printf ("} opcode_entry_type;\n\n"); printf ("#ifdef DEFINE_TABLE\n"); printf ("const opcode_entry_type z8k_table[] = {\n"); |