freerdp: upgrade 2.11.7 -> 2.11.8

Dropped 0001-Fix-const-qualifier-error.patch
* error no longer reproducible with clang

Dropped 0001-Fixed-compilation-warnings-in-ainput-channel.patch
* changes merged upstream[1]

Dropped 0001-Fixed-compilation-warnings.patch
* changes merged upstream[2]

Added 0001-Fix-compilation-error.patch to fix error:

| /yocto/bitbake-builds/poky-master/build/tmp/work/x86-64-v3-poky-linux/freerdp/2.11.8/sources/freerdp-2.11.8/winpr/libwinpr/utils/collections/Queue.c: In function 'Queue_EnsureCapacity':
| /yocto/bitbake-builds/poky-master/build/tmp/work/x86-64-v3-poky-linux/freerdp/2.11.8/sources/freerdp-2.11.8/winpr/libwinpr/utils/collections/Queue.c:169:30: error: assignment to 'void **' from incompatible pointer type 'uintptr_t *' {aka 'long unsigned int *'} [-Wincompatible-pointer-types]
|   169 |                 queue->array = newArray;
|       |

Release Notes:
https://github.com/FreeRDP/FreeRDP/releases/tag/2.11.8

Ptests passed:

START: ptest-runner
2026-03-24T19:06
BEGIN: /usr/lib/freerdp/ptest
PASS: TestClient TestClientRdpFile
...
PASS: TestWtsApi TestWtsApiWaitSystemEvent
DURATION: 180
END: /usr/lib/freerdp/ptest
2026-03-24T19:09
STOP: ptest-runner
TOTAL: 1 FAIL: 0

[1] 5b2b53b15c
[2] d2b6771c74

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Ankur Tyagi 2026-03-25 08:25:53 +13:00 committed by Khem Raj
parent 4840ec3594
commit ea89aba402
No known key found for this signature in database
GPG Key ID: BB053355919D3314
5 changed files with 103 additions and 160 deletions

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 \