PR 66861 Fix null pointer crash on mingw.
authorJanne Blomqvist <jb@gcc.gnu.org>
Tue, 14 Jul 2015 20:26:06 +0000 (23:26 +0300)
committerJanne Blomqvist <jb@gcc.gnu.org>
Tue, 14 Jul 2015 20:26:06 +0000 (23:26 +0300)
2015-07-14  Janne Blomqvist  <jb@gcc.gnu.org>

PR libfortran/66861
* io/unix.c (compare_file_filename): Verify that u->filename is
non-NULL before strcmp.
(find_file0): Likewise.

From-SVN: r225788

libgfortran/ChangeLog
libgfortran/io/unix.c

index ae0d85328c79b6ea44558e236d7fc1408807e285..876b2c92f8a4c1f7f013cba6d230e13f05219285 100644 (file)
@@ -1,3 +1,10 @@
+2015-07-14  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/66861
+       * io/unix.c (compare_file_filename): Verify that u->filename is
+       non-NULL before strcmp.
+       (find_file0): Likewise.
+
 2015-07-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR libfortran/40267
index e5fc6e19818dcccca662c946e8ea5c7d5b299436..a1ce9a3ffe7ee12f0b416101f410edb05603ced9 100644 (file)
@@ -1525,7 +1525,10 @@ compare_file_filename (gfc_unit *u, const char *name, int len)
       goto done;
     }
 # endif
-  ret = (strcmp(path, u->filename) == 0);
+  if (u->filename)
+    ret = (strcmp(path, u->filename) == 0);
+  else
+    ret = 0;
 #endif
  done:
   free (path);
@@ -1570,7 +1573,7 @@ find_file0 (gfc_unit *u, FIND_FILE0_DECL)
     }
   else
 # endif
-    if (strcmp (u->filename, path) == 0)
+    if (u->filename && strcmp (u->filename, path) == 0)
       return u;
 #endif