Prevent overflowing the selected_cpu_name buffer in the ARM assembler.
* config/tc-arm.c (selected_cpu_name): Increase length of array to accomodate "Samsung Exynos M1". (arm_parse_cpu): Add assertion and length check to prevent overfilling selected_cpu_name.
This commit is contained in:
parent
469bdc72e7
commit
ef8e6722f2
2 changed files with 15 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
2015-10-27 Jim Wilson <jim.wilson@linaro.org>
|
||||
|
||||
* config/tc-arm.c (selected_cpu_name): Increase length of array to
|
||||
accomodate "Samsung Exynos M1".
|
||||
(arm_parse_cpu): Add assertion and length check to prevent
|
||||
overfilling selected_cpu_name.
|
||||
|
||||
2015-10-22 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/tc-msp430.c (PUSH_1X_WORKAROUND): Delete.
|
||||
|
|
|
@ -266,7 +266,7 @@ static int mfloat_abi_opt = -1;
|
|||
/* Record user cpu selection for object attributes. */
|
||||
static arm_feature_set selected_cpu = ARM_ARCH_NONE;
|
||||
/* Must be long enough to hold any of the names in arm_cpus. */
|
||||
static char selected_cpu_name[16];
|
||||
static char selected_cpu_name[20];
|
||||
|
||||
extern FLONUM_TYPE generic_floating_point_number;
|
||||
|
||||
|
@ -25132,11 +25132,17 @@ arm_parse_cpu (char *str)
|
|||
mcpu_cpu_opt = &opt->value;
|
||||
mcpu_fpu_opt = &opt->default_fpu;
|
||||
if (opt->canonical_name)
|
||||
strcpy (selected_cpu_name, opt->canonical_name);
|
||||
{
|
||||
gas_assert (sizeof selected_cpu_name > strlen (opt->canonical_name));
|
||||
strcpy (selected_cpu_name, opt->canonical_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (len >= sizeof selected_cpu_name)
|
||||
len = (sizeof selected_cpu_name) - 1;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
selected_cpu_name[i] = TOUPPER (opt->name[i]);
|
||||
selected_cpu_name[i] = 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue