Commit 7b11fbb8 by Dominik Vogt Committed by Andreas Krebbel

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
parent 883b6d4e
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment