new file mode 100644
@@ -0,0 +1,101 @@
+From 0d48a9cb6e25afa10e76de75232ad32a82806aae Mon Sep 17 00:00:00 2001
+From: Ankur Tyagi <ankur.tyagi85@gmail.com>
+Date: Wed, 25 Mar 2026 00:04:42 +1300
+Subject: [PATCH] Fix compilation error
+
+Upstream-Status: Backport [https://github.com/FreeRDP/FreeRDP/commit/b78cb455cbe847da934c777189b6e7f25267502e]
+
+Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
+---
+ winpr/include/winpr/collections.h | 2 +-
+ winpr/libwinpr/utils/collections/Queue.c | 28 ++++++++++++++++++------
+ 2 files changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/winpr/include/winpr/collections.h b/winpr/include/winpr/collections.h
+index b8c8d9d66..64705751e 100644
+--- a/winpr/include/winpr/collections.h
++++ b/winpr/include/winpr/collections.h
+@@ -63,7 +63,7 @@ extern "C"
+ int head;
+ int tail;
+ int size;
+- void** array;
++ uintptr_t* array;
+ CRITICAL_SECTION lock;
+ HANDLE event;
+
+diff --git a/winpr/libwinpr/utils/collections/Queue.c b/winpr/libwinpr/utils/collections/Queue.c
+index bb789b658..6b86f7ab7 100644
+--- a/winpr/libwinpr/utils/collections/Queue.c
++++ b/winpr/libwinpr/utils/collections/Queue.c
+@@ -34,6 +34,16 @@
+ * Properties
+ */
+
++static inline void* uptr2void(uintptr_t ptr)
++{
++ return (void*)ptr;
++}
++
++static inline uintptr_t void2uptr(const void* ptr)
++{
++ return (uintptr_t)ptr;
++}
++
+ /**
+ * Gets the number of elements contained in the Queue.
+ */
+@@ -98,9 +108,12 @@ void Queue_Clear(wQueue* queue)
+ for (index = queue->head; index != queue->tail; index = (index + 1) % queue->capacity)
+ {
+ if (queue->object.fnObjectFree)
+- queue->object.fnObjectFree(queue->array[index]);
++ {
++ void* obj = uptr2void(queue->array[index]);
++ queue->object.fnObjectFree(obj);
++ }
+
+- queue->array[index] = NULL;
++ queue->array[index] = 0;
+ }
+
+ queue->size = 0;
+@@ -124,7 +137,8 @@ BOOL Queue_Contains(wQueue* queue, void* obj)
+
+ for (index = 0; index < queue->tail; index++)
+ {
+- if (queue->object.fnObjectEquals(queue->array[index], obj))
++ void* ptr = uptr2void(queue->array[index]);
++ if (queue->object.fnObjectEquals(ptr, obj))
+ {
+ found = TRUE;
+ break;
+@@ -217,7 +231,7 @@ BOOL Queue_Enqueue(wQueue* queue, void* obj)
+ if (!Queue_EnsureCapacity(queue, 1))
+ goto out;
+
+- queue->array[queue->tail] = obj;
++ queue->array[queue->tail] = void2uptr(obj);
+ queue->tail = (queue->tail + 1) % queue->capacity;
+ queue->size++;
+ SetEvent(queue->event);
+@@ -242,8 +256,8 @@ void* Queue_Dequeue(wQueue* queue)
+
+ if (queue->size > 0)
+ {
+- obj = queue->array[queue->head];
+- queue->array[queue->head] = NULL;
++ obj = uptr2void(queue->array[queue->head]);
++ queue->array[queue->head] = 0;
+ queue->head = (queue->head + 1) % queue->capacity;
+ queue->size--;
+ }
+@@ -269,7 +283,7 @@ void* Queue_Peek(wQueue* queue)
+ EnterCriticalSection(&queue->lock);
+
+ if (queue->size > 0)
+- obj = queue->array[queue->head];
++ obj = uptr2void(queue->array[queue->head]);
+
+ if (queue->synchronized)
+ LeaveCriticalSection(&queue->lock);
deleted file mode 100644
@@ -1,57 +0,0 @@
-From 761b4df04a141cc8c9507c741e4046c6c6b00491 Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@fujitsu.com>
-Date: Mon, 11 Sep 2023 09:00:39 +0000
-Subject: [PATCH] Fix const qualifier error
-
-Fixes clang error
-error: incompatible function pointer types assigning to 'OBJECT_NEW_FN' (aka 'void *(*)(void *)') from 'void *(const void *)' [-Wincompatible-function-pointer-types]
-| obj->fnObjectNew = uwac_event_clone;
-| ^ ~~~~~~~~~~~~~~~~
-
-https://github.com/FreeRDP/FreeRDP/commit/6e3c00725aae99d03a0baa65430eceddebd9dee8
-Upstream-Status: Backport
-
-Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
----
- libfreerdp/codec/rfx.c | 4 ++--
- winpr/include/winpr/collections.h | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c
-index ccbc5af..eec7365 100644
---- a/libfreerdp/codec/rfx.c
-+++ b/libfreerdp/codec/rfx.c
-@@ -153,7 +153,7 @@ static void rfx_tile_init(void* obj)
- }
- }
-
--static void* rfx_decoder_tile_new(void* val)
-+static void* rfx_decoder_tile_new(const void* val)
- {
- RFX_TILE* tile = NULL;
- WINPR_UNUSED(val);
-@@ -184,7 +184,7 @@ static void rfx_decoder_tile_free(void* obj)
- }
- }
-
--static void* rfx_encoder_tile_new(void* val)
-+static void* rfx_encoder_tile_new(const void* val)
- {
- WINPR_UNUSED(val);
- return calloc(1, sizeof(RFX_TILE));
-diff --git a/winpr/include/winpr/collections.h b/winpr/include/winpr/collections.h
-index 807f011..b8c8d9d 100644
---- a/winpr/include/winpr/collections.h
-+++ b/winpr/include/winpr/collections.h
-@@ -36,7 +36,7 @@ extern "C"
- {
- #endif
-
-- typedef void* (*OBJECT_NEW_FN)(void* val);
-+ typedef void* (*OBJECT_NEW_FN)(const void* val);
- typedef void (*OBJECT_INIT_FN)(void* obj);
- typedef void (*OBJECT_UNINIT_FN)(void* obj);
- typedef void (*OBJECT_FREE_FN)(void* obj);
-2.34.1
-
deleted file mode 100644
@@ -1,72 +0,0 @@
-From 130094de3244d5039e463e1142e1ec487c1104ef Mon Sep 17 00:00:00 2001
-From: Armin Novak <armin.novak@thincast.com>
-Date: Tue, 22 Feb 2022 12:05:08 +0100
-Subject: [PATCH] Fixed compilation warnings in ainput channel
-
-Upstream-Status: Backport [130094de3 Fixed compilation warnings in ainput channel]
-Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
----
- channels/ainput/server/ainput_main.c | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/channels/ainput/server/ainput_main.c b/channels/ainput/server/ainput_main.c
-index bc1737ee1..17d2ec681 100644
---- a/channels/ainput/server/ainput_main.c
-+++ b/channels/ainput/server/ainput_main.c
-@@ -192,7 +192,7 @@ static UINT ainput_server_recv_mouse_event(ainput_server* ainput, wStream* s)
-
- static HANDLE ainput_server_get_channel_handle(ainput_server* ainput)
- {
-- BYTE* buffer = NULL;
-+ void* buffer = NULL;
- DWORD BytesReturned = 0;
- HANDLE ChannelEvent = NULL;
-
-@@ -389,7 +389,7 @@ ainput_server_context* ainput_server_context_new(HANDLE vcm)
- goto fail;
- return &ainput->context;
- fail:
-- ainput_server_context_free(ainput);
-+ ainput_server_context_free(&ainput->context);
- return NULL;
- }
-
-@@ -496,17 +496,23 @@ UINT ainput_server_context_poll_int(ainput_server_context* context)
- break;
- case AINPUT_OPENED:
- {
-- BYTE* buffer = NULL;
-+ union
-+ {
-+ BYTE* pb;
-+ void* pv;
-+ } buffer;
- DWORD BytesReturned = 0;
-
-- if (WTSVirtualChannelQuery(ainput->ainput_channel, WTSVirtualChannelReady, &buffer,
-+ buffer.pv = NULL;
-+
-+ if (WTSVirtualChannelQuery(ainput->ainput_channel, WTSVirtualChannelReady, &buffer.pv,
- &BytesReturned) != TRUE)
- {
- WLog_ERR(TAG, "WTSVirtualChannelReady failed,");
- }
- else
- {
-- if (*buffer != 0)
-+ if (*buffer.pb != 0)
- {
- error = ainput_server_send_version(ainput);
- if (error)
-@@ -518,7 +524,7 @@ UINT ainput_server_context_poll_int(ainput_server_context* context)
- else
- error = CHANNEL_RC_OK;
- }
-- WTSFreeMemory(buffer);
-+ WTSFreeMemory(buffer.pv);
- }
- break;
- case AINPUT_VERSION_SENT:
-2.43.0
-
deleted file mode 100644
@@ -1,27 +0,0 @@
-From 75fa1fa5bd5ef2350390564245fd0984209ac092 Mon Sep 17 00:00:00 2001
-From: akallabeth <akallabeth@posteo.net>
-Date: Mon, 4 Jul 2022 14:34:46 +0200
-Subject: [PATCH] Fixed compilation warnings
-
-Upstream-Status: Backport [https://github.com/FreeRDP/FreeRDP/commit/2da280b8a1748052b70b3f5a1ef0d8e932c33adc]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- client/X11/xf_graphics.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/client/X11/xf_graphics.c b/client/X11/xf_graphics.c
-index 5aa1fd48b..fe81e0ed9 100644
---- a/client/X11/xf_graphics.c
-+++ b/client/X11/xf_graphics.c
-@@ -438,7 +438,7 @@ static BOOL xf_Pointer_New(rdpContext* context, rdpPointer* pointer)
-
- #endif
- fail:
-- WLog_DBG(TAG, "%s: %ld", __func__, rc ? pointer : -1);
-+ WLog_DBG(TAG, "%s: %p", __func__, rc ? pointer : NULL);
- return rc;
- }
-
-2.45.0
-
similarity index 95%
rename from meta-oe/recipes-support/freerdp/freerdp_2.11.7.bb
rename to meta-oe/recipes-support/freerdp/freerdp_2.11.8.bb
@@ -15,14 +15,12 @@ RDEPENDS:${PN}-ptest += "coreutils pcsc-lite-lib"
PE = "1"
PKGV = "${GITPKGVTAG}"
-SRCREV = "efa899d3deb8595a29fabb2a2251722f9d7e0d7f"
+SRCREV = "9b678b6d5a40ce01607d8c3b1b1416437c8416c4"
SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \
file://run-ptest \
file://winpr-makecert-Build-with-install-RPATH.patch \
- file://0001-Fixed-compilation-warnings.patch \
- file://0001-Fix-const-qualifier-error.patch \
file://0002-Do-not-install-tools-a-CMake-targets.patch \
- file://0001-Fixed-compilation-warnings-in-ainput-channel.patch \
+ file://0001-Fix-compilation-error.patch \
file://CVE-2024-32661.patch \
file://CVE-2026-22854.patch \
file://CVE-2026-22855.patch \