OSDN Git Service

PR 51803 Avoid malloc if getcwd fails or is not available.
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Jan 2012 09:58:34 +0000 (09:58 +0000)
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Jan 2012 09:58:34 +0000 (09:58 +0000)
2012-01-12  Janne Blomqvist  <jb@gcc.gnu.org>
    Tobias Burnus  <burnus@net-b.de>

PR libfortran/51803
* runtime/main.c (store_exe_path): Avoid malloc if getcwd fails or
is not available.

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

libgfortran/ChangeLog
libgfortran/runtime/main.c

index b1e2b04..7072e18 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-12  Janne Blomqvist  <jb@gcc.gnu.org>
+           Tobias Burnus  <burnus@net-b.de>
+
+       PR libfortran/51803
+       * runtime/main.c (store_exe_path): Avoid malloc if getcwd fails or
+       is not available.
+
 2012-01-11  Tobias Burnus  <burnus@net-b.de>
 
        * runtime/main.c (store_exe_path): Fix absolute path
@@ -5,6 +12,7 @@
 
 2012-01-11  Janne Blomqvist  <jb@gcc.gnu.org>
            Mike Stump  <mikestump@comcast.net>
+
        PR libfortran/51803
        * runtime/main.c (store_exe_path): Handle getcwd failure and lack
        of the function better.
index 9ee4702..79659e5 100644 (file)
@@ -124,12 +124,17 @@ store_exe_path (const char * argv0)
 
 #ifdef HAVE_GETCWD
   cwd = getcwd (buf, sizeof (buf));
-  if (!cwd)
-    cwd = ".";
 #else
-  cwd = ".";
+  cwd = NULL;
 #endif
 
+  if (!cwd)
+    {
+      exe_path = argv0;
+      please_free_exe_path_when_done = 0;
+      return;
+    }
+
   /* exe_path will be cwd + "/" + argv[0] + "\0".  This will not work
      if the executable is not in the cwd, but at this point we're out
      of better ideas.  */