aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/runtime
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2012-01-12 11:58:34 +0200
committerJanne Blomqvist <jb@gcc.gnu.org>2012-01-12 11:58:34 +0200
commitcb735e3800862a9350f56bdb775b4a8627226455 (patch)
treeecec08b90b14048a337d070bc48ab04deedc35ed /libgfortran/runtime
parent725a74a517294915302c713ee309340779514621 (diff)
downloadgcc-cb735e3800862a9350f56bdb775b4a8627226455.zip
gcc-cb735e3800862a9350f56bdb775b4a8627226455.tar.gz
gcc-cb735e3800862a9350f56bdb775b4a8627226455.tar.bz2
PR 51803 Avoid malloc if getcwd fails or is not available.
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. Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r183122
Diffstat (limited to 'libgfortran/runtime')
-rw-r--r--libgfortran/runtime/main.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libgfortran/runtime/main.c b/libgfortran/runtime/main.c
index 9ee4702..79659e5 100644
--- a/libgfortran/runtime/main.c
+++ b/libgfortran/runtime/main.c
@@ -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. */