From e9549a3bdc6c9da82f42357ab16aa66f93770ee9 Mon Sep 17 00:00:00 2001 From: Ondrej Holy Date: Fri, 17 Aug 2018 14:40:12 +0200 Subject: [PATCH] client/common: Fix leak found by covscan leaked_storage: Variable "file" going out of scope leaks the storage it points to. --- client/common/client.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/client/common/client.c b/client/common/client.c index 2c8bbbb8a..ef5db9708 100644 --- a/client/common/client.c +++ b/client/common/client.c @@ -306,6 +306,7 @@ int freerdp_client_settings_parse_assistance_file(rdpSettings* settings, const char* filename) { int status; + int ret = -1; rdpAssistanceFile* file; file = freerdp_assistance_file_new(); @@ -315,15 +316,17 @@ int freerdp_client_settings_parse_assistance_file(rdpSettings* settings, status = freerdp_assistance_parse_file(file, filename); if (status < 0) - return -1; + goto out; status = freerdp_client_populate_settings_from_assistance_file(file, settings); if (status < 0) - return -1; + goto out; + ret = 0; +out: freerdp_assistance_file_free(file); - return 0; + return ret; } /** Callback set in the rdp_freerdp structure, and used to get the user's password,