diff options
author | Nick Clifton <nickc@redhat.com> | 2009-01-02 14:21:54 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2009-01-02 14:21:54 +0000 |
commit | 4ef2cf8be8a20090d7709672b0227e24172df3b3 (patch) | |
tree | 8f4d659bafddd3e0e794ac99ba15767aa6151552 /gas | |
parent | e8f957fddddb3c42590910f524c0e96b2d9ea897 (diff) | |
download | fsf-binutils-gdb-4ef2cf8be8a20090d7709672b0227e24172df3b3.zip fsf-binutils-gdb-4ef2cf8be8a20090d7709672b0227e24172df3b3.tar.gz fsf-binutils-gdb-4ef2cf8be8a20090d7709672b0227e24172df3b3.tar.bz2 |
* or32-opc.c (or32_print_register, or32_print_immediate,
disassemble_insn): Don't rely on undefined sprintf behaviour.
* itbl-ops.c (itbl_disassemble): Don't rely on undefined sprintf
behaviour.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/itbl-ops.c | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index e9fa298..41ddb7d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2009-01-02 Matthias Klose <doko@ubuntu.com> + + * itbl-ops.c (itbl_disassemble): Don't rely on undefined sprintf + behaviour. + 2008-12-23 Jon Beniston <jon@beniston.com> * NEWS: Record that support for LM32 has been added. diff --git a/gas/itbl-ops.c b/gas/itbl-ops.c index 948ec99..e2f39d1 100644 --- a/gas/itbl-ops.c +++ b/gas/itbl-ops.c @@ -1,6 +1,6 @@ /* itbl-ops.c - Copyright 1997, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007 - Free Software Foundation, Inc. + Copyright 1997, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, + 2009 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -593,6 +593,7 @@ itbl_disassemble (char *s, unsigned long insn) { struct itbl_entry *r; unsigned long value; + char s_value[20]; if (f == e->fields) /* First operand is preceded by tab. */ strcat (s, "\t"); @@ -611,14 +612,18 @@ itbl_disassemble (char *s, unsigned long insn) if (r) strcat (s, r->name); else - sprintf (s, "%s$%lu", s, value); + { + sprintf (s_value, "$%lu", value); + strcat (s, s_value); + } break; case e_addr: /* Use assembler's symbol table to find symbol. */ /* FIXME!! Do we need this? If so, what about relocs?? */ /* If not a symbol, fall through to IMMED. */ case e_immed: - sprintf (s, "%s0x%lx", s, value); + sprintf (s_value, "0x%lx", value); + strcat (s, s_value); break; default: return 0; /* error; invalid field spec */ |