diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2012-01-12 11:58:34 +0200 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2012-01-12 11:58:34 +0200 |
commit | cb735e3800862a9350f56bdb775b4a8627226455 (patch) | |
tree | ecec08b90b14048a337d070bc48ab04deedc35ed /libgfortran/runtime/main.c | |
parent | 725a74a517294915302c713ee309340779514621 (diff) | |
download | gcc-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/main.c')
-rw-r--r-- | libgfortran/runtime/main.c | 11 |
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. */ |