* 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>
* 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
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006,
2007, 2009
2007, 2009, 2010
Free Software Foundation, Inc.
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. */
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++)
{
name[nlen] = TOLOWER (op_start[nlen]);
nlen++;
if (nlen == sizeof (name) - 1)
break;
}
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
lower case (the opcode table only has lower case op-codes). */
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++)
{
name[nlen] = TOLOWER (op_start[nlen]);
nlen++;
if (nlen == sizeof (name) - 1)
break;
}
name[nlen] = 0;

View file

@ -807,11 +807,13 @@ md_assemble (char * str)
/* Find the op code end. */
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++)
{
name[nlen] = op_start[nlen];
nlen++;
if (nlen == sizeof (name) - 1)
break;
}
name [nlen] = 0;