diff options
author | Idan Freiberg <speidy@gmail.com> | 2018-04-05 08:18:04 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-05 08:18:04 +0300 |
commit | cc851942d9368eda89ec49841afddcb64713332f (patch) | |
tree | 3034d54b92a03468e841927621aff801f0d82555 | |
parent | c9477d1d987392a6e72cce22740f300c0831de17 (diff) | |
parent | 4a95e330668de43fecda56d72c2aeccee914e1b3 (diff) |
Merge pull request #13 from metalefty/homepath-leak
Fix settings->home_path leak
-rw-r--r-- | libfreerdp-core/settings.c | 1 | ||||
-rw-r--r-- | libfreerdp-utils/file.c | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libfreerdp-core/settings.c b/libfreerdp-core/settings.c index 03b227c..b19c143 100644 --- a/libfreerdp-core/settings.c +++ b/libfreerdp-core/settings.c @@ -211,6 +211,7 @@ void settings_free(rdpSettings* settings) key_free(settings->server_key); xfree(settings->config_path); xfree(settings->current_path); + xfree(settings->home_path); xfree(settings->development_path); xfree(settings); } diff --git a/libfreerdp-utils/file.c b/libfreerdp-utils/file.c index 2c8fb2b..49e7cfa 100644 --- a/libfreerdp-utils/file.c +++ b/libfreerdp-utils/file.c @@ -80,8 +80,15 @@ tbool freerdp_check_file_exists(char* file) char* freerdp_get_home_path(rdpSettings* settings) { + char* home_env = NULL; + if (settings->home_path == NULL) - settings->home_path = getenv(HOME_ENV_VARIABLE); + { + home_env = getenv(HOME_ENV_VARIABLE); + + if (home_env) + settings->home_path = xstrdup(home_env); + } /* https://github.com/neutrinolabs/xrdp/issues/719 */ /* workaround if home_path still is null */ |