gfortran: Fix allocation of diagnostig string (was too small).
The attached patch fixes an out of bound write to memory allocated with alloca() on the stack. This rarely ever happened because on one hand -fbounds-check needs to be enabled, and on the other hand alloca() used to allocate a few bytes extra most of the time so most of the time the excess write did no harm. gcc/fortran/ChangeLog: * trans-array.c (gfc_conv_array_ref): Fix allocation of diagnostic message (was too small). From-SVN: r238849
This commit is contained in:
parent
883b6d4e1b
commit
7b11fbb838
|
@ -1,3 +1,8 @@
|
|||
2016-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
|
||||
|
||||
* trans-array.c (gfc_conv_array_ref): Fix allocation of diagnostic
|
||||
message (was too small).
|
||||
|
||||
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/71067
|
||||
|
|
|
@ -3332,7 +3332,7 @@ gfc_conv_array_ref (gfc_se * se, gfc_array_ref * ar, gfc_expr *expr,
|
|||
if (ref->type == REF_ARRAY && &ref->u.ar == ar)
|
||||
break;
|
||||
if (ref->type == REF_COMPONENT)
|
||||
len += 1 + strlen (ref->u.c.component->name);
|
||||
len += 2 + strlen (ref->u.c.component->name);
|
||||
}
|
||||
|
||||
var_name = XALLOCAVEC (char, len);
|
||||
|
|
Loading…
Reference in New Issue