From 53d8e0f2031773d3931e19e20110f0521cf46db1 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Sat, 25 May 2024 07:34:15 +0200 Subject: [PATCH 1/3] [crypto,tls] fix missing return --- libfreerdp/crypto/tls.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libfreerdp/crypto/tls.c b/libfreerdp/crypto/tls.c index 906e2501c002..e89420e2af4f 100644 --- a/libfreerdp/crypto/tls.c +++ b/libfreerdp/crypto/tls.c @@ -902,6 +902,7 @@ static int bio_err_print(const char* str, size_t len, void* u) { wLog* log = u; WLog_Print(log, WLOG_ERROR, "[BIO_do_handshake] %s [%" PRIuz "]", str, len); + return 0; } TlsHandshakeResult freerdp_tls_handshake(rdpTls* tls) From 5fe0c5f9fcccef98ebf5b99cc872c85a44f8adb2 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Sat, 25 May 2024 08:06:59 +0200 Subject: [PATCH 2/3] [codec,color] check for image_copy widht or height 0 --- libfreerdp/codec/color.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libfreerdp/codec/color.c b/libfreerdp/codec/color.c index 7f26ad9a7e6d..59dc92a5f9e8 100644 --- a/libfreerdp/codec/color.c +++ b/libfreerdp/codec/color.c @@ -593,6 +593,9 @@ BOOL freerdp_image_copy_no_overlap(BYTE* WINPR_RESTRICT pDstData, DWORD DstForma SSIZE_T dstVOffset = 0; SSIZE_T dstVMultiplier = 1; + if ((nWidth == 0) || (nHeight == 0)) + return TRUE; + if ((nHeight > INT32_MAX) || (nWidth > INT32_MAX)) return FALSE; @@ -711,6 +714,9 @@ BOOL freerdp_image_copy_overlap(BYTE* pDstData, DWORD DstFormat, UINT32 nDstStep SSIZE_T dstVOffset = 0; SSIZE_T dstVMultiplier = 1; + if ((nWidth == 0) || (nHeight == 0)) + return TRUE; + if ((nHeight > INT32_MAX) || (nWidth > INT32_MAX)) return FALSE; From 3261598d42d3052a92f54a695b844d4512c87709 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Sat, 25 May 2024 08:28:37 +0200 Subject: [PATCH 3/3] [client,sdl] guard USE_COMPILED_RESOURCES functions only required with USE_COMPILED_RESOURCES should not be compiled if the option is not set. --- client/SDL/common/res/CMakeLists.txt | 4 ++-- client/SDL/common/res/sdl_resource_manager.cpp | 2 ++ client/SDL/common/res/sdl_resource_manager.hpp | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/client/SDL/common/res/CMakeLists.txt b/client/SDL/common/res/CMakeLists.txt index f2f7fd8fe211..44edf0553be7 100644 --- a/client/SDL/common/res/CMakeLists.txt +++ b/client/SDL/common/res/CMakeLists.txt @@ -79,7 +79,7 @@ if (SDL_USE_COMPILED_RESOURCES) if (WITH_SDL_IMAGE_DIALOGS) foreach(FILE ${RES_SVG_FILES}) - convert_to_bin("${FILE}" "images") + convert_to_bin("${FILE}" "images") endforeach() endif() @@ -125,7 +125,7 @@ endif() add_library(sdl-common-client-res STATIC ${RES_FILES} ${SRCS} - ${FACTORY_HDR} + ${FACTORY_HDR} ${FACTORY_SRCS} ) set_property(TARGET sdl-common-client-res PROPERTY POSITION_INDEPENDENT_CODE ON) diff --git a/client/SDL/common/res/sdl_resource_manager.cpp b/client/SDL/common/res/sdl_resource_manager.cpp index 9fa160d276f0..44bf2247ec55 100644 --- a/client/SDL/common/res/sdl_resource_manager.cpp +++ b/client/SDL/common/res/sdl_resource_manager.cpp @@ -93,7 +93,9 @@ std::map>& SDLResourceManager::resources { static std::map> resources = {}; +#if defined(SDL_USE_COMPILED_RESOURCES) if (resources.empty()) init(); +#endif return resources; } diff --git a/client/SDL/common/res/sdl_resource_manager.hpp b/client/SDL/common/res/sdl_resource_manager.hpp index b120520d25ad..0dcb6ba6dee2 100644 --- a/client/SDL/common/res/sdl_resource_manager.hpp +++ b/client/SDL/common/res/sdl_resource_manager.hpp @@ -47,5 +47,7 @@ class SDLResourceManager private: static std::map>& resources(); +#if defined(SDL_USE_COMPILED_RESOURCES) static void init(); // implemented in generated file +#endif };