[PATCH] gfortran: Fix allocation of diagnostig string (was too small).
Dominik Vogt
vogt@linux.vnet.ibm.com
Tue Jul 26 15:42:00 GMT 2016
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.
Ciao
Dominik ^_^ ^_^
--
Dominik Vogt
IBM Germany
-------------- next part --------------
gcc/fortran/ChangeLog
* trans-array.c (gfc_conv_array_ref): Fix allocation of diagnostic
message (was too small).
-------------- next part --------------
>From a364536c94c5b5c124c3fd6e5cb547aa941aca12 Mon Sep 17 00:00:00 2001
From: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date: Tue, 26 Jul 2016 13:17:29 +0100
Subject: [PATCH] gfortran: Fix allocation of diagnostig string (was too
small).
---
gcc/fortran/trans-array.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index e95c8dd..7572755 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -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);
--
2.3.0
More information about the Gcc-patches
mailing list