[binutils-gdb] RISC-V: Fix missing initialization of riscv_csr_extra structs

Jim Wilson wilson@sourceware.org
Wed May 27 23:48:10 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5c5055683b980c71e96b642565418ffdefc6f171

commit 5c5055683b980c71e96b642565418ffdefc6f171
Author: Simon Cook <simon.cook@embecosm.com>
Date:   Wed May 27 17:34:58 2020 +0100

    RISC-V: Fix missing initialization of riscv_csr_extra structs
    
    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.

Diff:
---
 gas/ChangeLog         | 5 +++++
 gas/config/tc-riscv.c | 1 +
 2 files changed, 6 insertions(+)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 97d87762507..0d1565f00d3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-27  Simon Cook  <simon.cook@embecosm.com>
+
+        * config/tc-riscv.c (riscv_init_csr_hash): NULL initilize next
+        pointer when creating struct riscv_csr_extra.
+
 2020-05-26  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* testsuite/gas/i386/align-branch-9.d: Updated for PECOFF.
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 2a03a440b19..da94b5b1cfb 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


More information about the Binutils-cvs mailing list