diff --git a/Added-more-log-messages-for-SurfaceCommand-failures.patch b/Added-more-log-messages-for-SurfaceCommand-failures.patch deleted file mode 100644 index f8b91c7..0000000 --- a/Added-more-log-messages-for-SurfaceCommand-failures.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 631e71bebd041fbac2932555f17de050f6def91f Mon Sep 17 00:00:00 2001 -From: Armin Novak -Date: Tue, 8 Mar 2022 15:01:09 +0100 -Subject: [PATCH] Added more log messages for SurfaceCommand failures - -(cherry picked from commit c6f204091291990f85c23450778fcab35571eed5) ---- - libfreerdp/core/surface.c | 40 ++++++++++++++++++++++++++++++++++++--- - 1 file changed, 37 insertions(+), 3 deletions(-) - -diff --git a/libfreerdp/core/surface.c b/libfreerdp/core/surface.c -index ca89d230c..a99da01f3 100644 ---- a/libfreerdp/core/surface.c -+++ b/libfreerdp/core/surface.c -@@ -37,7 +37,11 @@ static BOOL update_recv_surfcmd_bitmap_header_ex(wStream* s, TS_COMPRESSED_BITMA - return FALSE; - - if (Stream_GetRemainingLength(s) < 24) -+ { -+ WLog_ERR(TAG, "got %" PRIuz ", expected %" PRIuz " bytes", Stream_GetRemainingLength(s), -+ 24); - return FALSE; -+ } - - Stream_Read_UINT32(s, header->highUniqueId); - Stream_Read_UINT32(s, header->lowUniqueId); -@@ -54,7 +58,11 @@ static BOOL update_recv_surfcmd_bitmap_ex(wStream* s, TS_BITMAP_DATA_EX* bmp) - return FALSE; - - if (Stream_GetRemainingLength(s) < 12) -+ { -+ WLog_ERR(TAG, "got %" PRIuz ", expected %" PRIuz " bytes", Stream_GetRemainingLength(s), -+ 12); - return FALSE; -+ } - - Stream_Read_UINT8(s, bmp->bpp); - Stream_Read_UINT8(s, bmp->flags); -@@ -86,7 +94,11 @@ static BOOL update_recv_surfcmd_bitmap_ex(wStream* s, TS_BITMAP_DATA_EX* bmp) - } - - if (Stream_GetRemainingLength(s) < bmp->bitmapDataLength) -+ { -+ WLog_ERR(TAG, "expected bitmapDataLength %" PRIu32 ", not enough data", -+ bmp->bitmapDataLength); - return FALSE; -+ } - - pos = Stream_GetPosition(s) + bmp->bitmapDataLength; - bmp->bitmapData = Stream_Pointer(s); -@@ -132,7 +144,10 @@ static BOOL update_recv_surfcmd_surface_bits(rdpUpdate* update, wStream* s, UINT - SURFACE_BITS_COMMAND cmd = { 0 }; - - if (Stream_GetRemainingLength(s) < 8) -+ { -+ WLog_ERR(TAG, "got %" PRIuz ", expected %" PRIuz " bytes", Stream_GetRemainingLength(s), 8); - goto fail; -+ } - - cmd.cmdType = cmdType; - Stream_Read_UINT16(s, cmd.destLeft); -@@ -152,7 +167,12 @@ static BOOL update_recv_surfcmd_surface_bits(rdpUpdate* update, wStream* s, UINT - goto fail; - } - -- return update->SurfaceBits(update->context, &cmd); -+ if (!update->SurfaceBits(update->context, &cmd)) -+ { -+ WLog_DBG(TAG, "update->SurfaceBits implementation failed"); -+ goto fail; -+ } -+ return TRUE; - fail: - return FALSE; - } -@@ -162,7 +182,10 @@ static BOOL update_recv_surfcmd_frame_marker(rdpUpdate* update, wStream* s) - SURFACE_FRAME_MARKER marker; - - if (Stream_GetRemainingLength(s) < 6) -+ { -+ WLog_ERR(TAG, "got %" PRIuz ", expected %" PRIuz " bytes", Stream_GetRemainingLength(s), 6); - return FALSE; -+ } - - Stream_Read_UINT16(s, marker.frameAction); - Stream_Read_UINT32(s, marker.frameId); -@@ -176,7 +199,13 @@ static BOOL update_recv_surfcmd_frame_marker(rdpUpdate* update, wStream* s) - return FALSE; - } - -- return update->SurfaceFrameMarker(update->context, &marker); -+ if (!update->SurfaceFrameMarker(update->context, &marker)) -+ { -+ WLog_DBG(TAG, "update->SurfaceFrameMarker implementation failed"); -+ return FALSE; -+ } -+ -+ return TRUE; - } - - int update_recv_surfcmds(rdpUpdate* update, wStream* s) -@@ -246,10 +275,15 @@ static BOOL update_write_surfcmd_bitmap_ex(wStream* s, const TS_BITMAP_DATA_EX* - if (!Stream_EnsureRemainingCapacity(s, 12)) - return FALSE; - -+ if (bmp->codecID > UINT8_MAX) -+ { -+ WLog_ERR(TAG, "Invalid TS_BITMAP_DATA_EX::codecID=0x%04" PRIx16 "", bmp->codecID); -+ return FALSE; -+ } - Stream_Write_UINT8(s, bmp->bpp); - Stream_Write_UINT8(s, bmp->flags); - Stream_Write_UINT8(s, 0); /* reserved1, reserved2 */ -- Stream_Write_UINT8(s, bmp->codecID); -+ Stream_Write_UINT8(s, (UINT8)bmp->codecID); - Stream_Write_UINT16(s, bmp->width); - Stream_Write_UINT16(s, bmp->height); - Stream_Write_UINT32(s, bmp->bitmapDataLength); --- -2.35.1 - diff --git a/Implemented-4341-Default-to-network-auto.patch b/Implemented-4341-Default-to-network-auto.patch deleted file mode 100644 index a89d2df..0000000 --- a/Implemented-4341-Default-to-network-auto.patch +++ /dev/null @@ -1,79 +0,0 @@ -From baf35cece9ff369d27deae1fed23d56907d82c31 Mon Sep 17 00:00:00 2001 -From: Armin Novak -Date: Thu, 29 Jul 2021 13:26:05 +0200 -Subject: [PATCH] Implemented #4341: Default to /network:auto - -If no arguments are supplied, default to the behaviour of -/network:auto. This ensures the default experience is using the -best available graphics options. -As soon as any /network, /bpp, /rfx, /gfx, ... argument is used -only use these. - -(cherry picked from commit d3168a1436eefe6864727991b18e458c2d6c87b3) ---- - client/common/cmdline.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/client/common/cmdline.c b/client/common/cmdline.c -index 15d481387..453a38c5f 100644 ---- a/client/common/cmdline.c -+++ b/client/common/cmdline.c -@@ -27,6 +27,8 @@ - #include - #include - -+#include -+ - #include - #include - #include -@@ -46,6 +48,8 @@ - #include "cmdline.h" - - #include -+ -+#define WINPR_ASSERT(x) assert(x) - #define TAG CLIENT_TAG("common.cmdline") - - static BOOL freerdp_client_print_codepages(const char* arg) -@@ -1567,6 +1571,28 @@ static BOOL parseSizeValue(const char* input, unsigned long* v1, unsigned long* - return TRUE; - } - -+static BOOL prepare_default_settings(rdpSettings* settings, const COMMAND_LINE_ARGUMENT_A* args, -+ BOOL rdp_file) -+{ -+ size_t x; -+ const char* arguments[] = { "network", "gfx", "rfx", "bpp" }; -+ WINPR_ASSERT(settings); -+ WINPR_ASSERT(args); -+ -+ if (rdp_file) -+ return FALSE; -+ -+ for (x = 0; x < ARRAYSIZE(arguments); x++) -+ { -+ const char* arg = arguments[x]; -+ COMMAND_LINE_ARGUMENT_A* p = CommandLineFindArgumentA(args, arg); -+ if (p && (p->Flags & COMMAND_LINE_ARGUMENT_PRESENT)) -+ return FALSE; -+ } -+ -+ return freerdp_set_connection_type(settings, CONNECTION_TYPE_AUTODETECT); -+} -+ - int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, int argc, - char** argv, BOOL allowUnknown) - { -@@ -1637,6 +1663,8 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, - - if (status < 0) - return status; -+ -+ prepare_default_settings(settings, largs, ext); - } - - CommandLineFindArgumentA(largs, "v"); --- -2.35.1 - diff --git a/Workaround-for-MS-RDPBCGR-2.2.9.2.3-Frame-Marker-Com.patch b/Workaround-for-MS-RDPBCGR-2.2.9.2.3-Frame-Marker-Com.patch deleted file mode 100644 index 6be8d52..0000000 --- a/Workaround-for-MS-RDPBCGR-2.2.9.2.3-Frame-Marker-Com.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 6462eca724a886e8c1abb5b41955108023d1c1e6 Mon Sep 17 00:00:00 2001 -From: Armin Novak -Date: Wed, 9 Mar 2022 09:01:11 +0100 -Subject: [PATCH] Workaround for [MS-RDPBCGR] 2.2.9.2.3 Frame Marker Command - (TS_FRAME_MARKER) - -Connections with windows 2016 and 2019 sometimes receive short -frame marker. Ignore these to prevent disconnects - -(cherry picked from commit 91ef44ed35c99c409d39f6c480592f8601b45e35) ---- - libfreerdp/core/surface.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/libfreerdp/core/surface.c b/libfreerdp/core/surface.c -index a99da01f3..e288799f1 100644 ---- a/libfreerdp/core/surface.c -+++ b/libfreerdp/core/surface.c -@@ -181,14 +181,21 @@ static BOOL update_recv_surfcmd_frame_marker(rdpUpdate* update, wStream* s) - { - SURFACE_FRAME_MARKER marker; - -- if (Stream_GetRemainingLength(s) < 6) -+ if (Stream_GetRemainingLength(s) < 2) - { - WLog_ERR(TAG, "got %" PRIuz ", expected %" PRIuz " bytes", Stream_GetRemainingLength(s), 6); - return FALSE; - } - - Stream_Read_UINT16(s, marker.frameAction); -- Stream_Read_UINT32(s, marker.frameId); -+ if (Stream_GetRemainingLength(s) < 4) -+ WLog_WARN(TAG, -+ "[SERVER-BUG]: got %" PRIuz ", expected %" PRIuz -+ " bytes. [MS-RDPBCGR] 2.2.9.2.3 Frame Marker Command (TS_FRAME_MARKER) is " -+ "missing frameId, ignoring", -+ Stream_GetRemainingLength(s), 4); -+ else -+ Stream_Read_UINT32(s, marker.frameId); - WLog_Print(update->log, WLOG_DEBUG, - "SurfaceFrameMarker: action: %s (%" PRIu32 ") id: %" PRIu32 "", - (!marker.frameAction) ? "Begin" : "End", marker.frameAction, marker.frameId); --- -2.35.1 -