diff options
author | Harald Anlauf <anlauf@gmx.de> | 2020-06-25 20:34:48 +0200 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2020-06-25 20:34:48 +0200 |
commit | 77d455ee81ec3a23f8b20259a31ab963716f8e82 (patch) | |
tree | f037fd0dd26fa855ca2af282c2ea47a534cf3a06 /gcc/fortran/match.c | |
parent | 35a335a159216548fc77263ac5df71ff29d3f448 (diff) | |
download | gcc-77d455ee81ec3a23f8b20259a31ab963716f8e82.zip gcc-77d455ee81ec3a23f8b20259a31ab963716f8e82.tar.gz gcc-77d455ee81ec3a23f8b20259a31ab963716f8e82.tar.bz2 |
PR fortran/95828 - Buffer overflows with SELECT RANK
With SELECT RANK, name mangling results in long internal symbols that
overflows internal buffers. Fix that.
gcc/fortran/
PR fortran/95828
* match.c (select_rank_set_tmp): Enlarge internal buffer used in
generating a mangled name.
* resolve.c (resolve_select_rank): Likewise.
Diffstat (limited to 'gcc/fortran/match.c')
-rw-r--r-- | gcc/fortran/match.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 8063fca..b011634 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -6496,7 +6496,7 @@ static void select_rank_set_tmp (gfc_typespec *ts, int *case_value) { char name[2 * GFC_MAX_SYMBOL_LEN]; - char tname[GFC_MAX_SYMBOL_LEN]; + char tname[GFC_MAX_SYMBOL_LEN + 7]; gfc_symtree *tmp; gfc_symbol *selector = select_type_stack->selector; gfc_symbol *sym; |