[binutils-gdb/binutils-2_35-branch] Segmentation fault i386-gen

Alan Modra amodra@sourceware.org
Tue Jan 26 23:43:43 GMT 2021


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

commit 6dcfc42f6893f4e49cb8d8e9fe1bfedcb783bb20
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Jan 26 12:20:23 2021 +1030

    Segmentation fault i386-gen
    
    A case of inst->next being uninitialised.
    
            * i386-gen.c (parse_template): Ensure entire template_instance
            is initialised.
    
    (cherry picked from commit c3ffb8f340f567949f24c3bab62259f0e593637f)

Diff:
---
 opcodes/ChangeLog  | 5 +++++
 opcodes/i386-gen.c | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index fada4f8c94b..ced84d63a77 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2021-01-26  Alan Modra  <amodra@gmail.com>
+
+	* i386-gen.c (parse_template): Ensure entire template_instance
+	is initialised.
+
 2020-10-07  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR gas/26685
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 7230f873445..09615f6069c 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -1465,6 +1465,8 @@ parse_template (char *buf, int lineno)
       *end++ = '\0';
 
       inst = xmalloc (sizeof (*inst));
+      inst->next = NULL;
+      inst->args = NULL;
 
       cur = next_field (buf, ':', &next, end);
       inst->name = xstrdup (cur);


More information about the Binutils-cvs mailing list