From 93952b87c31ee1443a857cc3c0b3f4da4eb90f0d Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 16 Jan 2026 13:13:27 +0100 Subject: [PATCH 1/5] [warnings,format] fix format string warnings --- channels/ainput/server/ainput_main.c | 11 +++---- channels/printer/client/cups/printer_cups.c | 2 +- .../src/main/cpp/android_freerdp.c | 30 ++++++++----------- libfreerdp/codec/clear.c | 5 ++-- server/Sample/sfreerdp.c | 1 - 5 files changed, 20 insertions(+), 29 deletions(-) diff --git a/channels/ainput/server/ainput_main.c b/channels/ainput/server/ainput_main.c index 1dd6d2b31..0d94ea9d2 100644 --- a/channels/ainput/server/ainput_main.c +++ b/channels/ainput/server/ainput_main.c @@ -436,21 +436,18 @@ void ainput_server_context_free(ainput_server_context* context) static UINT ainput_process_message(ainput_server* ainput) { - BOOL rc = 0; UINT error = ERROR_INTERNAL_ERROR; ULONG BytesReturned = 0; ULONG ActualBytesReturned = 0; - UINT16 MessageId = 0; - wStream* s = NULL; WINPR_ASSERT(ainput); WINPR_ASSERT(ainput->ainput_channel); - s = ainput->buffer; + wStream* s = ainput->buffer; WINPR_ASSERT(s); Stream_SetPosition(s, 0); - rc = WTSVirtualChannelRead(ainput->ainput_channel, 0, NULL, 0, &BytesReturned); + const BOOL rc = WTSVirtualChannelRead(ainput->ainput_channel, 0, NULL, 0, &BytesReturned); if (!rc) goto out; @@ -482,7 +479,7 @@ static UINT ainput_process_message(ainput_server* ainput) } Stream_SetLength(s, ActualBytesReturned); - Stream_Read_UINT16(s, MessageId); + const UINT16 MessageId = Stream_Get_UINT16(s); switch (MessageId) { @@ -491,7 +488,7 @@ static UINT ainput_process_message(ainput_server* ainput) break; default: - WLog_ERR(TAG, "audin_server_thread_func: unknown MessageId %" PRIu8 "", MessageId); + WLog_ERR(TAG, "audin_server_thread_func: unknown MessageId %" PRIu16 "", MessageId); break; } diff --git a/channels/printer/client/cups/printer_cups.c b/channels/printer/client/cups/printer_cups.c index fb28065f8..1d308083a 100644 --- a/channels/printer/client/cups/printer_cups.c +++ b/channels/printer/client/cups/printer_cups.c @@ -70,7 +70,7 @@ static bool is_mac_os_sonoma_or_later(void) const int rc = sscanf(str, "%d.%d.%d", &major, &minor, &patch); if (rc != 3) { - WLog_WARN(TAG, "could not match '%s' to format '%d.%d.%d'"); + WLog_WARN(TAG, "could not match '%s' to format '%d.%d.%d'", str, major, minor, patch); return false; } diff --git a/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c b/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c index 4e914fee2..367a33c9b 100644 --- a/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c +++ b/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c @@ -182,23 +182,20 @@ static BOOL android_desktop_resize(rdpContext* context) static BOOL android_pre_connect(freerdp* instance) { - int rc; - rdpSettings* settings; - WINPR_ASSERT(instance); WINPR_ASSERT(instance->context); - settings = instance->context->settings; + rdpSettings* settings = instance->context->settings; if (!settings) return FALSE; - rc = PubSub_SubscribeChannelConnected(instance->context->pubSub, - android_OnChannelConnectedEventHandler); + const int rc = PubSub_SubscribeChannelConnected(instance->context->pubSub, + android_OnChannelConnectedEventHandler); if (rc != CHANNEL_RC_OK) { - WLog_ERR(TAG, "Could not subscribe to connect event handler [%l08X]", rc); + WLog_ERR(TAG, "Could not subscribe to connect event handler [%08lX]", rc); return FALSE; } @@ -207,7 +204,7 @@ static BOOL android_pre_connect(freerdp* instance) if (rc != CHANNEL_RC_OK) { - WLog_ERR(TAG, "Could not subscribe to disconnect event handler [%l08X]", rc); + WLog_ERR(TAG, "Could not subscribe to disconnect event handler [%08lX]", rc); return FALSE; } @@ -449,7 +446,7 @@ static int android_freerdp_run(freerdp* instance) if (status == WAIT_FAILED) { WLog_ERR(TAG, "WaitForMultipleObjects failed with %" PRIu32 " [%08lX]", status, - GetLastError()); + (unsigned)GetLastError()); break; } @@ -650,7 +647,7 @@ JNIEXPORT jlong JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp if (setenv("HOME", _strdup(envStr), 1) != 0) { char ebuffer[256] = { 0 }; - WLog_FATAL(TAG, "Failed to set environment HOME=%s %s [%d]", env, + WLog_FATAL(TAG, "Failed to set environment HOME=%s %s [%d]", envStr, winpr_strerror(errno, ebuffer, sizeof(ebuffer)), errno); return (jlong)NULL; } @@ -732,15 +729,14 @@ JNIEXPORT jboolean JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_free JNIEnv* env, jclass cls, jlong instance) { freerdp* inst = (freerdp*)instance; - androidContext* ctx; if (!inst || !inst->context) { - WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%d", (void*)env, (void*)cls, instance); + WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%ld", (void*)env, (void*)cls, instance); return JNI_FALSE; } - ctx = (androidContext*)inst->context; + androidContext* ctx = (androidContext*)inst->context; if (!(ctx->thread = CreateThread(NULL, 0, android_thread_func, inst, 0, NULL))) { @@ -754,17 +750,15 @@ JNIEXPORT jboolean JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_free JNIEnv* env, jclass cls, jlong instance) { freerdp* inst = (freerdp*)instance; - androidContext* ctx; - ANDROID_EVENT* event; if (!inst || !inst->context || !cls || !env) { - WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%d", (void*)env, (void*)cls, instance); + WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%ld", (void*)env, (void*)cls, instance); return JNI_FALSE; } - ctx = (androidContext*)inst->context; - event = (ANDROID_EVENT*)android_event_disconnect_new(); + androidContext* ctx = (androidContext*)inst->context; + ANDROID_EVENT* event = (ANDROID_EVENT*)android_event_disconnect_new(); if (!event) return JNI_FALSE; diff --git a/libfreerdp/codec/clear.c b/libfreerdp/codec/clear.c index 9112d492a..18bc74e68 100644 --- a/libfreerdp/codec/clear.c +++ b/libfreerdp/codec/clear.c @@ -337,7 +337,8 @@ static BOOL clear_resize_buffer(CLEAR_CONTEXT* WINPR_RESTRICT clear, UINT32 widt if (size > clear->TempSize / bpp) { - BYTE* tmp = (BYTE*)winpr_aligned_recalloc(clear->TempBuffer, size, bpp, 32); + BYTE* tmp = (BYTE*)winpr_aligned_recalloc(clear->TempBuffer, + WINPR_ASSERTING_INT_CAST(size_t, size), bpp, 32); if (!tmp) { @@ -346,7 +347,7 @@ static BOOL clear_resize_buffer(CLEAR_CONTEXT* WINPR_RESTRICT clear, UINT32 widt return FALSE; } - clear->TempSize = size * bpp; + clear->TempSize = WINPR_ASSERTING_INT_CAST(size_t, size* bpp); clear->TempBuffer = tmp; } diff --git a/server/Sample/sfreerdp.c b/server/Sample/sfreerdp.c index d907faa9e..07193f9d7 100644 --- a/server/Sample/sfreerdp.c +++ b/server/Sample/sfreerdp.c @@ -692,7 +692,6 @@ static BOOL tf_peer_post_connect(freerdp_peer* client) /* A real server may perform OS login here if NLA is not executed previously. */ } - WLog_DBG(TAG, ""); WLog_DBG(TAG, "Client requested desktop: %" PRIu32 "x%" PRIu32 "x%" PRIu32 "", freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth), freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight), From 832da09b3e8a10fd987cda4a9743eef3e069470a Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 16 Jan 2026 13:17:11 +0100 Subject: [PATCH 2/5] [utils,rdpdr] force constant to unsigned --- libfreerdp/utils/rdpdr_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libfreerdp/utils/rdpdr_utils.c b/libfreerdp/utils/rdpdr_utils.c index 7e316ff5a..19694691b 100644 --- a/libfreerdp/utils/rdpdr_utils.c +++ b/libfreerdp/utils/rdpdr_utils.c @@ -653,7 +653,7 @@ const char* rdpdr_irp_mask2str(UINT32 ioCode1Mask, char* buffer, size_t len) for (size_t x = 0; x < 32; x++) { - const UINT32 mask = (1 << x); + const UINT32 mask = (1u << x); if (ioCode1Mask & mask) { if (!winpr_str_append(rdpdr_irp_val2str(mask), &buffer[1], len - 1, "|")) From fb8efd45f209040201cb8089b7c11d034a68cc01 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 16 Jan 2026 13:36:14 +0100 Subject: [PATCH 3/5] [c,format] fix format string and review warnings --- channels/rdpdr/client/devman.c | 2 +- channels/rdpsnd/client/pulse/rdpsnd_pulse.c | 2 +- channels/tsmf/client/tsmf_main.c | 8 +++----- client/X11/xf_client.c | 4 ++-- libfreerdp/codec/interleaved.c | 3 +-- libfreerdp/core/security.c | 6 ++---- libfreerdp/crypto/x509_utils.c | 4 ++-- server/proxy/pf_config.c | 3 +-- winpr/libwinpr/ncrypt/ncrypt.c | 2 +- winpr/libwinpr/path/shell.c | 3 +-- winpr/libwinpr/synch/mutex.c | 2 +- 11 files changed, 16 insertions(+), 23 deletions(-) diff --git a/channels/rdpdr/client/devman.c b/channels/rdpdr/client/devman.c index 00dbada93..8c99c198c 100644 --- a/channels/rdpdr/client/devman.c +++ b/channels/rdpdr/client/devman.c @@ -131,7 +131,7 @@ DEVICE* devman_get_device_by_id(DEVMAN* devman, UINT32 id) if (!devman) { - WLog_ERR(TAG, "device manager=%p", WINPR_CXX_COMPAT_CAST(const void*, devman)); + WLog_ERR(TAG, "device manager=NULL"); return NULL; } diff --git a/channels/rdpsnd/client/pulse/rdpsnd_pulse.c b/channels/rdpsnd/client/pulse/rdpsnd_pulse.c index a12a586d4..c74c5e4cc 100644 --- a/channels/rdpsnd/client/pulse/rdpsnd_pulse.c +++ b/channels/rdpsnd/client/pulse/rdpsnd_pulse.c @@ -65,7 +65,7 @@ static BOOL rdpsnd_check_pulse(rdpsndPulsePlugin* pulse, BOOL haveStream) if (!pulse->context) { - WLog_WARN(TAG, "pulse->context=%p", WINPR_CXX_COMPAT_CAST(const void*, pulse->context)); + WLog_WARN(TAG, "pulse->context=NULL"); rc = FALSE; } diff --git a/channels/tsmf/client/tsmf_main.c b/channels/tsmf/client/tsmf_main.c index 1b64051b6..dbfa404ca 100644 --- a/channels/tsmf/client/tsmf_main.c +++ b/channels/tsmf/client/tsmf_main.c @@ -100,11 +100,9 @@ BOOL tsmf_playback_ack(IWTSVirtualChannelCallback* pChannelCallback, UINT32 mess if (!callback->channel || !callback->channel->Write) { - WLog_ERR(TAG, "callback=%p, channel=%p, write=%p", - WINPR_CXX_COMPAT_CAST(const void*, callback), - WINPR_CXX_COMPAT_CAST(const void*, callback ? callback->channel : NULL), - WINPR_CXX_COMPAT_CAST( - const void*, callback && callback->channel ? callback->channel->Write : NULL)); + WLog_ERR(TAG, "channel=%p, write=%p", WINPR_CXX_COMPAT_CAST(const void*, callback->channel), + WINPR_CXX_COMPAT_CAST(const void*, + callback->channel ? callback->channel->Write : NULL)); } else { diff --git a/client/X11/xf_client.c b/client/X11/xf_client.c index 6391540ae..2f7e2d8c6 100644 --- a/client/X11/xf_client.c +++ b/client/X11/xf_client.c @@ -304,7 +304,7 @@ void xf_draw_screen_(xfContext* xfc, int x, int y, int w, int h, const char* fkt { if (!xfc) { - WLog_DBG(TAG, "called from [%s] xfc=%p", fkt, WINPR_CXX_COMPAT_CAST(const void*, xfc)); + WLog_DBG(TAG, "called from [%s] xfc=NULL", fkt); return; } @@ -316,7 +316,7 @@ void xf_draw_screen_(xfContext* xfc, int x, int y, int w, int h, const char* fkt if (!xfc->window) { - WLog_WARN(TAG, "invalid xfc->window=%p", WINPR_CXX_COMPAT_CAST(const void*, xfc->window)); + WLog_WARN(TAG, "invalid xfc->window=NULL"); return; } diff --git a/libfreerdp/codec/interleaved.c b/libfreerdp/codec/interleaved.c index 686eccbb2..44810deb5 100644 --- a/libfreerdp/codec/interleaved.c +++ b/libfreerdp/codec/interleaved.c @@ -586,8 +586,7 @@ BOOL interleaved_decompress(BITMAP_INTERLEAVED_CONTEXT* WINPR_RESTRICT interleav if (!interleaved->TempBuffer) { - WLog_ERR(TAG, "interleaved->TempBuffer=%p", - WINPR_CXX_COMPAT_CAST(const void*, interleaved->TempBuffer)); + WLog_ERR(TAG, "interleaved->TempBuffer=NULL"); return FALSE; } diff --git a/libfreerdp/core/security.c b/libfreerdp/core/security.c index 67986e5ab..2832e7c75 100644 --- a/libfreerdp/core/security.c +++ b/libfreerdp/core/security.c @@ -831,8 +831,7 @@ BOOL security_encrypt(BYTE* data, size_t length, rdpRdp* rdp) WINPR_ASSERT(rdp); if (!rdp->rc4_encrypt_key) { - WLog_ERR(TAG, "rdp->rc4_encrypt_key=%p", - WINPR_CXX_COMPAT_CAST(const void*, rdp->rc4_encrypt_key)); + WLog_ERR(TAG, "rdp->rc4_encrypt_key=NULL"); goto fail; } @@ -864,8 +863,7 @@ BOOL security_decrypt(BYTE* data, size_t length, rdpRdp* rdp) if (!rdp->rc4_decrypt_key) { - WLog_ERR(TAG, "rdp->rc4_decrypt_key=%p", - WINPR_CXX_COMPAT_CAST(const void*, rdp->rc4_decrypt_key)); + WLog_ERR(TAG, "rdp->rc4_decrypt_key=NULL"); goto fail; } diff --git a/libfreerdp/crypto/x509_utils.c b/libfreerdp/crypto/x509_utils.c index 579ffc993..b7a1e584a 100644 --- a/libfreerdp/crypto/x509_utils.c +++ b/libfreerdp/crypto/x509_utils.c @@ -108,7 +108,7 @@ char* x509_utils_get_subject(const X509* xcert) char* subject = NULL; if (!xcert) { - WLog_ERR(TAG, "Invalid certificate %p", WINPR_CXX_COMPAT_CAST(const void*, xcert)); + WLog_ERR(TAG, "Invalid certificate NULL"); return NULL; } subject = crypto_print_name(X509_get_subject_name(xcert)); @@ -562,7 +562,7 @@ char* x509_utils_get_issuer(const X509* xcert) char* issuer = NULL; if (!xcert) { - WLog_ERR(TAG, "Invalid certificate %p", WINPR_CXX_COMPAT_CAST(const void*, xcert)); + WLog_ERR(TAG, "Invalid certificate NULL"); return NULL; } issuer = crypto_print_name(X509_get_issuer_name(xcert)); diff --git a/server/proxy/pf_config.c b/server/proxy/pf_config.c index 1a5bc14d9..e3cd4eb47 100644 --- a/server/proxy/pf_config.c +++ b/server/proxy/pf_config.c @@ -378,8 +378,7 @@ static char* pf_config_decode_base64(const char* data, const char* name, size_t* char* decoded = NULL; if (!data) { - WLog_ERR(TAG, "Invalid base64 data [%p] for %s", WINPR_CXX_COMPAT_CAST(const void*, data), - name); + WLog_ERR(TAG, "Invalid base64 data [NULL] for %s", name); return NULL; } diff --git a/winpr/libwinpr/ncrypt/ncrypt.c b/winpr/libwinpr/ncrypt/ncrypt.c index a39a96e77..18d64e30b 100644 --- a/winpr/libwinpr/ncrypt/ncrypt.c +++ b/winpr/libwinpr/ncrypt/ncrypt.c @@ -36,7 +36,7 @@ SECURITY_STATUS checkNCryptHandle(NCRYPT_HANDLE handle, NCryptHandleType matchTy { if (!handle) { - WLog_VRB(TAG, "invalid handle '%p'", WINPR_CXX_COMPAT_CAST(const void*, handle)); + WLog_VRB(TAG, "invalid handle 'NULL'"); return ERROR_INVALID_PARAMETER; } diff --git a/winpr/libwinpr/path/shell.c b/winpr/libwinpr/path/shell.c index 501549786..f647e8f08 100644 --- a/winpr/libwinpr/path/shell.c +++ b/winpr/libwinpr/path/shell.c @@ -388,8 +388,7 @@ char* GetKnownPath(eKnownPathTypes id) } if (!path) - WLog_WARN(TAG, "Path %s is %p", GetKnownPathIdString(WINPR_ASSERTING_INT_CAST(int, id)), - WINPR_CXX_COMPAT_CAST(const void*, path)); + WLog_WARN(TAG, "Path %s is NULL", GetKnownPathIdString(WINPR_ASSERTING_INT_CAST(int, id))); return path; } diff --git a/winpr/libwinpr/synch/mutex.c b/winpr/libwinpr/synch/mutex.c index 91e4081ea..99f5bac03 100644 --- a/winpr/libwinpr/synch/mutex.c +++ b/winpr/libwinpr/synch/mutex.c @@ -190,7 +190,7 @@ HANDLE CreateMutexExW(LPSECURITY_ATTRIBUTES lpMutexAttributes, LPCWSTR lpName, D if (dwDesiredAccess != 0) { char name[MAX_PATH] = { 0 }; - ConvertWCharToUtf8(lpName, name, sizeof(name)); + ConvertWCharToUtf8(lpName, name, sizeof(name) - 1); WLog_WARN(TAG, "[%s] does not support dwDesiredAccess 0x%08" PRIx32, name, dwDesiredAccess); } From b86369beb7be5005472078f8e1b026643ce97dac Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 16 Jan 2026 13:46:08 +0100 Subject: [PATCH 4/5] [core,tcp] fix freerdp_tcp_connect_timeout size type --- libfreerdp/core/tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index 1ce138c6b..9f45b31c7 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -808,7 +808,7 @@ static BOOL freerdp_tcp_is_hostname_resolvable(rdpContext* context, const char* } static BOOL freerdp_tcp_connect_timeout(rdpContext* context, int sockfd, struct sockaddr* addr, - socklen_t addrlen, UINT32 timeout) + size_t addrlen, UINT32 timeout) { BOOL rc = FALSE; HANDLE handles[2] = { 0 }; From e02a55d43479bd492bcc4a61f6242d2572ad4da9 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 16 Jan 2026 14:18:52 +0100 Subject: [PATCH 5/5] [client,android] fix client build warnings --- .../freeRDPCore/src/main/cpp/android_freerdp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c b/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c index 367a33c9b..b2c12ac52 100644 --- a/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c +++ b/client/Android/Studio/freeRDPCore/src/main/cpp/android_freerdp.c @@ -190,12 +190,12 @@ static BOOL android_pre_connect(freerdp* instance) if (!settings) return FALSE; - const int rc = PubSub_SubscribeChannelConnected(instance->context->pubSub, - android_OnChannelConnectedEventHandler); + int rc = PubSub_SubscribeChannelConnected(instance->context->pubSub, + android_OnChannelConnectedEventHandler); if (rc != CHANNEL_RC_OK) { - WLog_ERR(TAG, "Could not subscribe to connect event handler [%08lX]", rc); + WLog_ERR(TAG, "Could not subscribe to connect event handler [%08X]", rc); return FALSE; } @@ -204,7 +204,7 @@ static BOOL android_pre_connect(freerdp* instance) if (rc != CHANNEL_RC_OK) { - WLog_ERR(TAG, "Could not subscribe to disconnect event handler [%08lX]", rc); + WLog_ERR(TAG, "Could not subscribe to disconnect event handler [%08X]", rc); return FALSE; } @@ -445,7 +445,7 @@ static int android_freerdp_run(freerdp* instance) if (status == WAIT_FAILED) { - WLog_ERR(TAG, "WaitForMultipleObjects failed with %" PRIu32 " [%08lX]", status, + WLog_ERR(TAG, "WaitForMultipleObjects failed with %u [%08X]", status, (unsigned)GetLastError()); break; } @@ -732,7 +732,7 @@ JNIEXPORT jboolean JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_free if (!inst || !inst->context) { - WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%ld", (void*)env, (void*)cls, instance); + WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%lld", (void*)env, (void*)cls, instance); return JNI_FALSE; } @@ -753,7 +753,7 @@ JNIEXPORT jboolean JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_free if (!inst || !inst->context || !cls || !env) { - WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%ld", (void*)env, (void*)cls, instance); + WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%lld", (void*)env, (void*)cls, instance); return JNI_FALSE; } @@ -792,7 +792,7 @@ Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp_1update_1graphics(JNIEn if (!env || !cls || !inst) { - WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%d", (void*)env, (void*)cls, instance); + WLog_FATAL(TAG, "(env=%p, cls=%p, instance=%lld", (void*)env, (void*)cls, instance); return JNI_FALSE; }