[PATCH][GAS] RISC-V: Fix missing initialization of riscv_csr_extra structs

Simon Cook simon.cook@embecosm.com
Wed May 27 16:34:58 GMT 2020


The next pointer of struct riscv_csr_extra was not always initilized
to NULL or a valid pointer, causing the assembler to attempt to read
through an uninitialized pointer on startup.

gas/ChangeLog:

        * config/tc-riscv.c (riscv_init_csr_hash): NULL initilize next
        pointer when creating struct riscv_csr_extra.
---
 gas/config/tc-riscv.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 2a03a440b1..da94b5b1cf 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -695,6 +695,7 @@ riscv_init_csr_hash (const char *name,
   entry->address = address;
   entry->define_version = define_version;
   entry->abort_version = abort_version;
+  entry->next = NULL;

   /* If the CSR hasn't been inserted in the hash table, then insert it.
      Otherwise, attach the extra information to the entry which is already
-- 
2.17.1


More information about the Binutils mailing list