OSDN Git Service

2012-09-05 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2012 16:40:48 +0000 (16:40 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2012 16:40:48 +0000 (16:40 +0000)
        PR fortran/54462
        * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190989 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/symbol.c

index dbafc44..69c0fe8 100644 (file)
@@ -1,3 +1,8 @@
+2012-09-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/54462
+       * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
+
 2012-09-04  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/54435
index 8d3b56c..1f4a735 100644 (file)
@@ -2919,10 +2919,12 @@ gfc_undo_symbols (void)
                  gfc_symtree st, *st0;
                  st0 = find_common_symtree (p->ns->common_root,
                                             p->common_block);
-
-                 st.name = st0->name;
-                 gfc_delete_bbt (&p->ns->common_root, &st, compare_symtree);
-                 free (st0);
+                 if (st0)
+                   {
+                     st.name = st0->name;
+                     gfc_delete_bbt (&p->ns->common_root, &st, compare_symtree);
+                     free (st0);
+                   }
                }
 
              if (p->common_block->head == p)