From 6a20b7bfd8b1d1cb9f5e41a3be85ed935efd201a Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Wed, 23 Apr 2025 09:30:49 +0200 Subject: [PATCH] [common,settings] fix add_string_or_null * If the value is NULL do not check WINPR_JSON_AddNullToObject return as that is most likely also NULL * Fix testcase, always use goto for error handling --- libfreerdp/common/settings.c | 3 ++- libfreerdp/core/test/TestSettings.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 57fe723d4..4a8a9bf2f 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -2616,7 +2616,8 @@ static BOOL add_string_or_null(WINPR_JSON* json, const char* key, const char* va if (value) return WINPR_JSON_AddStringToObject(json, key, value) != NULL; - return WINPR_JSON_AddNullToObject(json, key) != NULL; + (void)WINPR_JSON_AddNullToObject(json, key); + return TRUE; } static WINPR_JSON* json_from_device_item(const RDPDR_DEVICE* val) diff --git a/libfreerdp/core/test/TestSettings.c b/libfreerdp/core/test/TestSettings.c index 325bb02ad..fb1a4cf8f 100644 --- a/libfreerdp/core/test/TestSettings.c +++ b/libfreerdp/core/test/TestSettings.c @@ -1718,7 +1718,7 @@ static BOOL test_serialize_pointer(DWORD flags) { rdpSettings* src = freerdp_settings_new(flags); if (!src) - return FALSE; + goto fail; const char* argv1[] = { "foobar", "lala", "haha" }; const char* argv2[] = { "lala", "haha" }; @@ -1775,7 +1775,7 @@ static BOOL test_serialize_pointer(DWORD flags) void* ptr = NULL; winpr_RAND((void*)&ptr, sizeof(void*)); if (!freerdp_settings_set_pointer(src, FreeRDP_instance, ptr)) - return FALSE; + goto fail; if (!set_private_key(src)) goto fail;