diff options
Diffstat (limited to 'erts/etc/common/erlc.c')
-rw-r--r-- | erts/etc/common/erlc.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/erts/etc/common/erlc.c b/erts/etc/common/erlc.c index 523ead86ed..6b00a1f48f 100644 --- a/erts/etc/common/erlc.c +++ b/erts/etc/common/erlc.c @@ -892,6 +892,8 @@ find_executable(char* progname) struct stat s; if (stat(real_name, &s) == 0 && s.st_mode & S_IFREG) { return real_name; + } else { + free(real_name); } } } while (*path++ == ':'); @@ -908,7 +910,11 @@ safe_realpath(char* file) * Solaris. */ char* real_name = emalloc(PATH_MAX + 1); - return realpath(file, real_name); + char* result = realpath(file, real_name); + if (result != real_name) { + free(real_name); + } + return result; } #endif |