From 733f1abebdabbeacb597b5171939b3bd42627249 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 19 Dec 2024 16:09:35 +0100 Subject: [PATCH 1/2] [core,settings] ensure MonitorDefArray exists in freerdp_settings_enforce_monitor_exists ensure the array has a valid size before trying to set a value. --- libfreerdp/core/settings.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libfreerdp/core/settings.c b/libfreerdp/core/settings.c index ab56db3f9..99bee2d37 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -1709,6 +1709,13 @@ BOOL freerdp_settings_enforce_monitor_exists(rdpSettings* settings) const BOOL multimon = freerdp_settings_get_bool(settings, FreeRDP_UseMultimon); const BOOL useMonitors = fullscreen || multimon; + const UINT32 size = freerdp_settings_get_uint32(settings, FreeRDP_MonitorDefArraySize); + if (size == 0) + { + if (!freerdp_settings_set_pointer_len(settings, FreeRDP_MonitorDefArray, NULL, 16)) + return FALSE; + } + if (nrIds == 0) { if (!freerdp_settings_set_uint32(settings, FreeRDP_NumMonitorIds, 1)) @@ -1750,7 +1757,6 @@ BOOL freerdp_settings_enforce_monitor_exists(rdpSettings* settings) } else if (fullscreen || (multimon && (count == 1))) { - /* not all platforms start primary monitor at 0/0, so enforce this to avoid issues with * fullscreen mode */ rdpMonitor* monitor = From 62beb27f2397fa4aaea434eca5760dd5f3a48203 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 19 Dec 2024 16:01:24 +0100 Subject: [PATCH 2/2] [core,transport] do not stop providing streams from pool --- libfreerdp/core/transport.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/libfreerdp/core/transport.c b/libfreerdp/core/transport.c index b99e190cd..53635a5cd 100644 --- a/libfreerdp/core/transport.c +++ b/libfreerdp/core/transport.c @@ -151,9 +151,6 @@ wStream* transport_send_stream_init(rdpTransport* transport, size_t size) { WINPR_ASSERT(transport); - if (!transport->frontBio) - return NULL; - wStream* s = StreamPool_Take(transport->ReceivePool, size); if (!s) return NULL;