diff options
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/match.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b98e37c..24c3e7a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2010-08-27 Janus Weil <janus@gcc.gnu.org> + + PR fortran/45432 + * match.c (gfc_match_allocate): Avoid double free on error. + 2010-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/32049 diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 7c0dfc7..47cd8d6 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -2955,6 +2955,7 @@ alloc_opt_list: } stat = tmp; + tmp = NULL; saw_stat = true; if (gfc_check_do_variable (stat->symtree)) @@ -2981,6 +2982,7 @@ alloc_opt_list: } errmsg = tmp; + tmp = NULL; saw_errmsg = true; if (gfc_match_char (',') == MATCH_YES) @@ -3019,6 +3021,7 @@ alloc_opt_list: } source = tmp; + tmp = NULL; saw_source = true; if (gfc_match_char (',') == MATCH_YES) @@ -3050,6 +3053,7 @@ alloc_opt_list: } mold = tmp; + tmp = NULL; saw_mold = true; mold->mold = 1; |