]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/45432 (gfortran.dg/allocate_alloc_opt_9.f90: Segfault due to invalid...
authorJanus Weil <janus@gcc.gnu.org>
Fri, 27 Aug 2010 21:50:47 +0000 (23:50 +0200)
committerJanus Weil <janus@gcc.gnu.org>
Fri, 27 Aug 2010 21:50:47 +0000 (23:50 +0200)
2010-08-27  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45432
* match.c (gfc_match_allocate): Avoid double free on error.

From-SVN: r163599

gcc/fortran/ChangeLog
gcc/fortran/match.c

index b98e37c8c88ec42382e4a234258ce9e6bc289147..24c3e7aa28ea47fbce9596aa36b83941c7cc5269 100644 (file)
@@ -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
index 7c0dfc7478d7067c17f1f17b93d8dae421531d16..47cd8d6be936401c7dc40d64b96a0e28a60580fe 100644 (file)
@@ -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;