From 67e55811aa8fd6d2490397f99f70f1a8df1d85b5 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 8 Dec 2025 02:18:48 +0100 Subject: [PATCH] [utils,helpers] fix freerdp_settings_get_legacy_config_path properly append filename to the path as is done in other configuration tyhpes. --- libfreerdp/utils/helpers.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libfreerdp/utils/helpers.c b/libfreerdp/utils/helpers.c index 7d7f04e75..c2c001363 100644 --- a/libfreerdp/utils/helpers.c +++ b/libfreerdp/utils/helpers.c @@ -27,14 +27,22 @@ #include #if !defined(WITH_FULL_CONFIG_PATH) -static char* freerdp_settings_get_legacy_config_path(void) +WINPR_ATTR_MALLOC(free, 1) +static char* freerdp_settings_get_legacy_config_path(const char* filename) { char product[sizeof(FREERDP_PRODUCT_STRING)] = { 0 }; for (size_t i = 0; i < sizeof(product); i++) product[i] = (char)tolower(FREERDP_PRODUCT_STRING[i]); - return GetKnownSubPath(KNOWN_PATH_XDG_CONFIG_HOME, product); + char* path = GetKnownSubPath(KNOWN_PATH_XDG_CONFIG_HOME, product); + + if (!path) + return NULL; + + char* filepath = GetCombinedPath(path, filename); + free(path); + return filepath; } #endif @@ -47,7 +55,7 @@ char* freerdp_GetConfigFilePath(BOOL system, const char* filename) #else #if !defined(WITH_FULL_CONFIG_PATH) if (!system && (_stricmp(FREERDP_VENDOR_STRING, FREERDP_PRODUCT_STRING) == 0)) - return freerdp_settings_get_legacy_config_path(); + return freerdp_settings_get_legacy_config_path(filename); #endif char* vendor = GetKnownPath(id);