* config/tc-d10v.c (do_assemble): Correctly detect overflow of

"name" buffer.
	* config/tc-m68hc11.c (md_assemble): Likewise.
	* config/tc-microblaze.c (md_assemble): Likewise.  Correct cast
	of is_end_of_line index.
This commit is contained in:
Alan Modra 2010-08-25 11:51:07 +00:00
parent ca09d69af1
commit 4ad7ac30ca
4 changed files with 18 additions and 4 deletions

View file

@ -1,3 +1,11 @@
2010-08-25 Alan Modra <amodra@gmail.com>
* config/tc-d10v.c (do_assemble): Correctly detect overflow of
"name" buffer.
* config/tc-m68hc11.c (md_assemble): Likewise.
* config/tc-microblaze.c (md_assemble): Likewise. Correct cast
of is_end_of_line index.
2010-08-25 Jie Zhang <jie@codesourcery.com> 2010-08-25 Jie Zhang <jie@codesourcery.com>
* config/tc-arm.c (encode_arm_addr_mode_2): Fix comment. * config/tc-arm.c (encode_arm_addr_mode_2): Fix comment.

View file

@ -1,6 +1,6 @@
/* tc-d10v.c -- Assembler code for the Mitsubishi D10V /* tc-d10v.c -- Assembler code for the Mitsubishi D10V
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006,
2007, 2009 2007, 2009, 2010
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler. This file is part of GAS, the GNU Assembler.
@ -1420,11 +1420,13 @@ do_assemble (char *str, struct d10v_opcode **opcode)
/* Find the opcode end. */ /* Find the opcode end. */
for (op_start = op_end = (unsigned char *) str; for (op_start = op_end = (unsigned char *) str;
*op_end && nlen < 20 && !is_end_of_line[*op_end] && *op_end != ' '; *op_end && !is_end_of_line[*op_end] && *op_end != ' ';
op_end++) op_end++)
{ {
name[nlen] = TOLOWER (op_start[nlen]); name[nlen] = TOLOWER (op_start[nlen]);
nlen++; nlen++;
if (nlen == sizeof (name) - 1)
break;
} }
name[nlen] = 0; name[nlen] = 0;

View file

@ -2403,11 +2403,13 @@ md_assemble (char *str)
/* Find the opcode end and get the opcode in 'name'. The opcode is forced /* Find the opcode end and get the opcode in 'name'. The opcode is forced
lower case (the opcode table only has lower case op-codes). */ lower case (the opcode table only has lower case op-codes). */
for (op_start = op_end = (unsigned char *) str; for (op_start = op_end = (unsigned char *) str;
*op_end && nlen < 20 && !is_end_of_line[*op_end] && *op_end != ' '; *op_end && !is_end_of_line[*op_end] && *op_end != ' ';
op_end++) op_end++)
{ {
name[nlen] = TOLOWER (op_start[nlen]); name[nlen] = TOLOWER (op_start[nlen]);
nlen++; nlen++;
if (nlen == sizeof (name) - 1)
break;
} }
name[nlen] = 0; name[nlen] = 0;

View file

@ -807,11 +807,13 @@ md_assemble (char * str)
/* Find the op code end. */ /* Find the op code end. */
for (op_start = op_end = str; for (op_start = op_end = str;
* op_end && nlen < 20 && !is_end_of_line [(int)*op_end] && *op_end != ' '; *op_end && !is_end_of_line[(unsigned char) *op_end] && *op_end != ' ';
op_end++) op_end++)
{ {
name[nlen] = op_start[nlen]; name[nlen] = op_start[nlen];
nlen++; nlen++;
if (nlen == sizeof (name) - 1)
break;
} }
name [nlen] = 0; name [nlen] = 0;