From 36c3184a0f367c8ffbe695a5d9cda6ea40b6dfad Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 29 Aug 2024 15:10:21 +0200 Subject: [PATCH] [warnings] fix clang-tidy issues in libfreerdp --- libfreerdp/cache/glyph.c | 2 +- libfreerdp/codec/interleaved.c | 34 +++++++-------- libfreerdp/codec/ncrush.c | 2 +- libfreerdp/codec/rfx_rlgr.c | 2 +- libfreerdp/codec/sse/rfx_sse2.c | 25 ++++++----- libfreerdp/codec/test/TestFreeRDPRegion.c | 4 +- libfreerdp/common/assistance.c | 2 +- libfreerdp/common/settings_getters.c | 4 +- libfreerdp/core/gateway/http.c | 2 +- libfreerdp/core/gateway/rdg.c | 4 +- libfreerdp/core/gateway/tsg.c | 4 +- libfreerdp/core/gateway/wst.c | 6 +-- libfreerdp/core/orders.c | 16 +++---- libfreerdp/core/orders.h | 14 +++---- libfreerdp/core/proxy.c | 2 +- libfreerdp/core/rdp.c | 9 +++- libfreerdp/core/redirection.c | 4 +- libfreerdp/core/server.c | 3 +- libfreerdp/core/settings.h | 2 +- libfreerdp/core/tcp.c | 2 +- libfreerdp/core/test/TestVersion.c | 2 +- libfreerdp/core/update.c | 25 +++++------ libfreerdp/crypto/test/TestBase64.c | 8 ++-- libfreerdp/crypto/tls.c | 2 +- libfreerdp/gdi/bitmap.c | 2 +- libfreerdp/gdi/line.c | 2 +- libfreerdp/gdi/line.h | 2 +- libfreerdp/locale/keyboard.c | 6 +-- libfreerdp/primitives/prim_YUV.c | 2 +- libfreerdp/primitives/sse/prim_colors_sse2.c | 44 ++++++++++---------- 30 files changed, 125 insertions(+), 113 deletions(-) diff --git a/libfreerdp/cache/glyph.c b/libfreerdp/cache/glyph.c index c21e2dd89..9383d0bb9 100644 --- a/libfreerdp/cache/glyph.c +++ b/libfreerdp/cache/glyph.c @@ -72,7 +72,7 @@ static UINT32 update_glyph_offset(const BYTE* data, size_t length, UINT32 index, } static BOOL update_process_glyph(rdpContext* context, const BYTE* data, UINT32 cacheIndex, INT32* x, - INT32* y, UINT32 cacheId, UINT32 flAccel, BOOL fOpRedundant, + const INT32* y, UINT32 cacheId, UINT32 flAccel, BOOL fOpRedundant, const RDP_RECT* bound) { INT32 sx = 0; diff --git a/libfreerdp/codec/interleaved.c b/libfreerdp/codec/interleaved.c index d037ebd34..147f5def8 100644 --- a/libfreerdp/codec/interleaved.c +++ b/libfreerdp/codec/interleaved.c @@ -44,10 +44,10 @@ #define UNROLL_MULTIPLE(_condition, _exp, _count) \ do \ { \ - while ((_condition) >= _count) \ + while ((_condition) >= (_count)) \ { \ UNROLL_BODY(_exp, _count); \ - (_condition) -= _count; \ + (_condition) -= (_count); \ } \ } while (FALSE) @@ -428,14 +428,14 @@ static INLINE void write_pixel_16(BYTE* _buf, UINT16 _pix) do \ { \ write_pixel_8(_buf, _pix); \ - _buf += 1; \ + (_buf) += 1; \ } while (0) #define DESTREADPIXEL(_pix, _buf) _pix = (_buf)[0] #define SRCREADPIXEL(_pix, _buf) \ do \ { \ - _pix = (_buf)[0]; \ - _buf += 1; \ + (_pix) = (_buf)[0]; \ + (_buf) += 1; \ } while (0) #define WRITEFGBGIMAGE WriteFgBgImage8to8 @@ -463,14 +463,14 @@ static INLINE void write_pixel_16(BYTE* _buf, UINT16 _pix) do \ { \ write_pixel_16(_buf, _pix); \ - _buf += 2; \ + (_buf) += 2; \ } while (0) #define DESTREADPIXEL(_pix, _buf) _pix = ((UINT16*)(_buf))[0] -#define SRCREADPIXEL(_pix, _buf) \ - do \ - { \ - _pix = (_buf)[0] | ((_buf)[1] << 8); \ - _buf += 2; \ +#define SRCREADPIXEL(_pix, _buf) \ + do \ + { \ + (_pix) = (_buf)[0] | ((_buf)[1] << 8); \ + (_buf) += 2; \ } while (0) #define WRITEFGBGIMAGE WriteFgBgImage16to16 #define WRITEFIRSTLINEFGBGIMAGE WriteFirstLineFgBgImage16to16 @@ -497,14 +497,14 @@ static INLINE void write_pixel_16(BYTE* _buf, UINT16 _pix) do \ { \ write_pixel_24(_buf, _pix); \ - _buf += 3; \ + (_buf) += 3; \ } while (0) #define DESTREADPIXEL(_pix, _buf) _pix = (_buf)[0] | ((_buf)[1] << 8) | ((_buf)[2] << 16) -#define SRCREADPIXEL(_pix, _buf) \ - do \ - { \ - _pix = (_buf)[0] | ((_buf)[1] << 8) | ((_buf)[2] << 16); \ - _buf += 3; \ +#define SRCREADPIXEL(_pix, _buf) \ + do \ + { \ + (_pix) = (_buf)[0] | ((_buf)[1] << 8) | ((_buf)[2] << 16); \ + (_buf) += 3; \ } while (0) #define WRITEFGBGIMAGE WriteFgBgImage24to24 diff --git a/libfreerdp/codec/ncrush.c b/libfreerdp/codec/ncrush.c index 15332eefe..32accc8d0 100644 --- a/libfreerdp/codec/ncrush.c +++ b/libfreerdp/codec/ncrush.c @@ -2341,7 +2341,7 @@ static int ncrush_hash_table_add(NCRUSH_CONTEXT* ncrush, const BYTE* pSrcData, U return 1; } -static int ncrush_find_match_length(const BYTE* Ptr1, const BYTE* Ptr2, BYTE* HistoryPtr) +static int ncrush_find_match_length(const BYTE* Ptr1, const BYTE* Ptr2, const BYTE* HistoryPtr) { BYTE val1 = 0; BYTE val2 = 0; diff --git a/libfreerdp/codec/rfx_rlgr.c b/libfreerdp/codec/rfx_rlgr.c index 6ecbfbe5f..8b05e5682 100644 --- a/libfreerdp/codec/rfx_rlgr.c +++ b/libfreerdp/codec/rfx_rlgr.c @@ -589,7 +589,7 @@ int rfx_rlgr_decode(RLGR_MODE mode, const BYTE* WINPR_RESTRICT pSrcData, UINT32 #define OutputBit(count, bit) \ do \ { \ - UINT16 _b = (bit ? 0xFFFF : 0); \ + UINT16 _b = ((bit) ? 0xFFFF : 0); \ int _c = (count); \ for (; _c > 0; _c -= 16) \ rfx_bitstream_put_bits(bs, _b, (_c > 16 ? 16 : _c)); \ diff --git a/libfreerdp/codec/sse/rfx_sse2.c b/libfreerdp/codec/sse/rfx_sse2.c index ab553fb40..d21a6b35c 100644 --- a/libfreerdp/codec/sse/rfx_sse2.c +++ b/libfreerdp/codec/sse/rfx_sse2.c @@ -54,19 +54,18 @@ #define ATTRIBUTES __gnu_inline__, __always_inline__ #endif -#define _mm_between_epi16(_val, _min, _max) \ - do \ - { \ - _val = _mm_min_epi16(_max, _mm_max_epi16(_val, _min)); \ +#define mm_between_epi16(_val, _min, _max) \ + do \ + { \ + (_val) = _mm_min_epi16(_max, _mm_max_epi16(_val, _min)); \ } while (0) static __inline void __attribute__((ATTRIBUTES)) -_mm_prefetch_buffer(char* WINPR_RESTRICT buffer, int num_bytes) +mm_prefetch_buffer(char* WINPR_RESTRICT buffer, size_t num_bytes) { __m128i* buf = (__m128i*)buffer; - for (unsigned int i = 0; i < (num_bytes / sizeof(__m128i)); - i += (CACHE_LINE_BYTES / sizeof(__m128i))) + for (size_t i = 0; i < (num_bytes / sizeof(__m128i)); i += (CACHE_LINE_BYTES / sizeof(__m128i))) { _mm_prefetch((char*)(&buf[i]), _MM_HINT_NTA); } @@ -101,7 +100,7 @@ static void rfx_quantization_decode_sse2(INT16* WINPR_RESTRICT buffer, WINPR_ASSERT(buffer); WINPR_ASSERT(quantVals); - _mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); + mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); rfx_quantization_decode_block_sse2(&buffer[0], 1024, quantVals[8] - 1); /* HL1 */ rfx_quantization_decode_block_sse2(&buffer[1024], 1024, quantVals[7] - 1); /* LH1 */ rfx_quantization_decode_block_sse2(&buffer[2048], 1024, quantVals[9] - 1); /* HH1 */ @@ -144,7 +143,7 @@ static void rfx_quantization_encode_sse2(INT16* WINPR_RESTRICT buffer, WINPR_ASSERT(buffer); WINPR_ASSERT(quantization_values); - _mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); + mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); rfx_quantization_encode_block_sse2(buffer, 1024, quantization_values[8] - 6); /* HL1 */ rfx_quantization_encode_block_sse2(buffer + 1024, 1024, quantization_values[7] - 6); /* LH1 */ rfx_quantization_encode_block_sse2(buffer + 2048, 1024, quantization_values[9] - 6); /* HH1 */ @@ -321,7 +320,7 @@ rfx_dwt_2d_decode_block_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT INT16* ll = NULL; INT16* l_dst = NULL; INT16* h_dst = NULL; - _mm_prefetch_buffer((char*)idwt, 4ULL * subband_width * sizeof(INT16)); + mm_prefetch_buffer((char*)idwt, 4ULL * subband_width * sizeof(INT16)); /* Inverse DWT in horizontal direction, results in 2 sub-bands in L, H order in tmp buffer idwt. */ /* The 4 sub-bands are stored in HL(0), LH(1), HH(2), LL(3) order. */ @@ -344,7 +343,7 @@ static void rfx_dwt_2d_decode_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RE WINPR_ASSERT(buffer); WINPR_ASSERT(dwt_buffer); - _mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); + mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); rfx_dwt_2d_decode_block_sse2(&buffer[3840], dwt_buffer, 8); rfx_dwt_2d_decode_block_sse2(&buffer[3072], dwt_buffer, 16); rfx_dwt_2d_decode_block_sse2(&buffer[0], dwt_buffer, 32); @@ -461,7 +460,7 @@ rfx_dwt_2d_encode_block_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RESTRICT INT16* ll = NULL; INT16* l_src = NULL; INT16* h_src = NULL; - _mm_prefetch_buffer((char*)dwt, 4ULL * subband_width * sizeof(INT16)); + mm_prefetch_buffer((char*)dwt, 4ULL * subband_width * sizeof(INT16)); /* DWT in vertical direction, results in 2 sub-bands in L, H order in tmp buffer dwt. */ l_src = dwt; h_src = dwt + 2ULL * subband_width * subband_width; @@ -483,7 +482,7 @@ static void rfx_dwt_2d_encode_sse2(INT16* WINPR_RESTRICT buffer, INT16* WINPR_RE WINPR_ASSERT(buffer); WINPR_ASSERT(dwt_buffer); - _mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); + mm_prefetch_buffer((char*)buffer, 4096 * sizeof(INT16)); rfx_dwt_2d_encode_block_sse2(buffer, dwt_buffer, 32); rfx_dwt_2d_encode_block_sse2(buffer + 3072, dwt_buffer, 16); rfx_dwt_2d_encode_block_sse2(buffer + 3840, dwt_buffer, 8); diff --git a/libfreerdp/codec/test/TestFreeRDPRegion.c b/libfreerdp/codec/test/TestFreeRDPRegion.c index 1a14ed03d..e192d2d99 100644 --- a/libfreerdp/codec/test/TestFreeRDPRegion.c +++ b/libfreerdp/codec/test/TestFreeRDPRegion.c @@ -26,7 +26,7 @@ static BOOL compareRectangles(const RECTANGLE_16* src1, const RECTANGLE_16* src2 { for (int i = 0; i < nb; i++, src1++, src2++) { - if (memcmp(src1, src2, sizeof(RECTANGLE_16))) + if (memcmp(src1, src2, sizeof(RECTANGLE_16)) != 0) { (void)fprintf(stderr, "expecting rect %d (%" PRIu16 ",%" PRIu16 "-%" PRIu16 ",%" PRIu16 @@ -58,7 +58,7 @@ static int test_basic(void) rects = region16_rects(®ion, &nbRects); - if (!rects || nbRects != 1 || memcmp(rects, &r1, sizeof(RECTANGLE_16))) + if (!rects || nbRects != 1 || memcmp(rects, &r1, sizeof(RECTANGLE_16)) != 0) goto out; /* r1 + r2 */ diff --git a/libfreerdp/common/assistance.c b/libfreerdp/common/assistance.c index c83021d51..2d5e0314c 100644 --- a/libfreerdp/common/assistance.c +++ b/libfreerdp/common/assistance.c @@ -214,7 +214,7 @@ static BOOL update_connectionstring2_wchar(rdpAssistanceFile* file, const WCHAR* * Use the first n bytes of the result of step 5 as the derived key. */ -static BOOL freerdp_assistance_crypt_derive_key_sha1(BYTE* hash, size_t hashLength, BYTE* key, +static BOOL freerdp_assistance_crypt_derive_key_sha1(const BYTE* hash, size_t hashLength, BYTE* key, size_t keyLength) { BOOL rc = FALSE; diff --git a/libfreerdp/common/settings_getters.c b/libfreerdp/common/settings_getters.c index 85cd0160b..0f454076a 100644 --- a/libfreerdp/common/settings_getters.c +++ b/libfreerdp/common/settings_getters.c @@ -3288,8 +3288,8 @@ char* freerdp_settings_get_string_writable(rdpSettings* settings, FreeRDP_Settin } } -BOOL freerdp_settings_set_string_(rdpSettings* settings, FreeRDP_Settings_Keys_String id, char* val, - size_t len) +BOOL freerdp_settings_set_string_(rdpSettings* settings, FreeRDP_Settings_Keys_String id, + const char* val, size_t len) { union { diff --git a/libfreerdp/core/gateway/http.c b/libfreerdp/core/gateway/http.c index a278a9d56..9ff9bd906 100644 --- a/libfreerdp/core/gateway/http.c +++ b/libfreerdp/core/gateway/http.c @@ -43,7 +43,7 @@ #define TAG FREERDP_TAG("core.gateway.http") -#define RESPONSE_SIZE_LIMIT 64ULL * 1024ULL * 1024ULL +#define RESPONSE_SIZE_LIMIT (64ULL * 1024ULL * 1024ULL) #define WEBSOCKET_MAGIC_GUID "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" diff --git a/libfreerdp/core/gateway/rdg.c b/libfreerdp/core/gateway/rdg.c index 17d9f59b7..b0c2f5804 100644 --- a/libfreerdp/core/gateway/rdg.c +++ b/libfreerdp/core/gateway/rdg.c @@ -107,7 +107,7 @@ typedef struct { TRANSFER_ENCODING httpTransferEncoding; BOOL isWebsocketTransport; - union _context + union context { http_encoding_chunked_context chunked; websocket_context websocket; @@ -2070,7 +2070,7 @@ static int rdg_bio_puts(BIO* bio, const char* str) return -2; } -static int rdg_bio_gets(BIO* bio, char* str, int size) +static int rdg_bio_gets(BIO* bio, const char* str, int size) { WINPR_UNUSED(bio); WINPR_UNUSED(str); diff --git a/libfreerdp/core/gateway/tsg.c b/libfreerdp/core/gateway/tsg.c index 4d7790de3..5e166cb91 100644 --- a/libfreerdp/core/gateway/tsg.c +++ b/libfreerdp/core/gateway/tsg.c @@ -1262,7 +1262,7 @@ static BIO_METHOD* BIO_s_tsg(void); */ static int TsProxySendToServer(handle_t IDL_handle, const byte pRpcMessage[], UINT32 count, - UINT32* lengths) + const UINT32* lengths) { wStream* s = NULL; rdpTsg* tsg = NULL; @@ -2970,7 +2970,7 @@ static int transport_bio_tsg_puts(BIO* bio, const char* str) return 1; } -static int transport_bio_tsg_gets(BIO* bio, char* str, int size) +static int transport_bio_tsg_gets(BIO* bio, const char* str, int size) { WINPR_UNUSED(bio); WINPR_UNUSED(str); diff --git a/libfreerdp/core/gateway/wst.c b/libfreerdp/core/gateway/wst.c index 3f43076b8..6de52a26a 100644 --- a/libfreerdp/core/gateway/wst.c +++ b/libfreerdp/core/gateway/wst.c @@ -767,9 +767,9 @@ static BOOL wst_parse_url(rdpWst* wst, const char* url) return FALSE; strncpy(port, portStart, (pos - portStart)); port[pos - portStart] = '\0'; - int _p = strtol(port, &portNumberEnd, 10); - if (portNumberEnd && *portNumberEnd == '\0' && _p > 0 && _p <= UINT16_MAX) - wst->gwport = _p; + long _p = strtol(port, &portNumberEnd, 10); + if (portNumberEnd && (*portNumberEnd == '\0') && (_p > 0) && (_p <= UINT16_MAX)) + wst->gwport = (uint16_t)_p; else return FALSE; } diff --git a/libfreerdp/core/orders.c b/libfreerdp/core/orders.c index 0dff91170..17a227401 100644 --- a/libfreerdp/core/orders.c +++ b/libfreerdp/core/orders.c @@ -956,7 +956,7 @@ static INLINE BOOL update_write_brush(wStream* s, rdpBrush* brush, BYTE fieldFla return TRUE; } -static INLINE BOOL update_read_delta_rects(wStream* s, DELTA_RECT* rectangles, UINT32* nr) +static INLINE BOOL update_read_delta_rects(wStream* s, DELTA_RECT* rectangles, const UINT32* nr) { UINT32 number = *nr; BYTE flags = 0; @@ -2246,7 +2246,7 @@ fail: } size_t update_approximate_cache_bitmap_order(const CACHE_BITMAP_ORDER* cache_bitmap, - BOOL compressed, UINT16* flags) + BOOL compressed, const UINT16* flags) { WINPR_ASSERT(cache_bitmap); WINPR_UNUSED(compressed); @@ -2392,7 +2392,7 @@ fail: } size_t update_approximate_cache_bitmap_v2_order(CACHE_BITMAP_V2_ORDER* cache_bitmap_v2, - BOOL compressed, UINT16* flags) + BOOL compressed, const UINT16* flags) { WINPR_ASSERT(cache_bitmap_v2); WINPR_UNUSED(flags); @@ -2620,7 +2620,7 @@ fail: } size_t update_approximate_cache_color_table_order(const CACHE_COLOR_TABLE_ORDER* cache_color_table, - UINT16* flags) + const UINT16* flags) { WINPR_UNUSED(cache_color_table); WINPR_UNUSED(flags); @@ -2717,7 +2717,8 @@ fail: return NULL; } -size_t update_approximate_cache_glyph_order(const CACHE_GLYPH_ORDER* cache_glyph, UINT16* flags) +size_t update_approximate_cache_glyph_order(const CACHE_GLYPH_ORDER* cache_glyph, + const UINT16* flags) { WINPR_ASSERT(cache_glyph); WINPR_UNUSED(flags); @@ -2822,7 +2823,7 @@ fail: } size_t update_approximate_cache_glyph_v2_order(const CACHE_GLYPH_V2_ORDER* cache_glyph_v2, - UINT16* flags) + const UINT16* flags) { WINPR_ASSERT(cache_glyph_v2); WINPR_UNUSED(flags); @@ -2987,7 +2988,8 @@ fail: return NULL; } -size_t update_approximate_cache_brush_order(const CACHE_BRUSH_ORDER* cache_brush, UINT16* flags) +size_t update_approximate_cache_brush_order(const CACHE_BRUSH_ORDER* cache_brush, + const UINT16* flags) { WINPR_UNUSED(cache_brush); WINPR_UNUSED(flags); diff --git a/libfreerdp/core/orders.h b/libfreerdp/core/orders.h index 5db054e47..121a52292 100644 --- a/libfreerdp/core/orders.h +++ b/libfreerdp/core/orders.h @@ -233,13 +233,13 @@ FREERDP_LOCAL BOOL update_write_glyph_index_order(wStream* s, ORDER_INFO* orderI GLYPH_INDEX_ORDER* glyph_index); FREERDP_LOCAL size_t update_approximate_cache_bitmap_order(const CACHE_BITMAP_ORDER* cache_bitmap, - BOOL compressed, UINT16* flags); + BOOL compressed, const UINT16* flags); FREERDP_LOCAL BOOL update_write_cache_bitmap_order(wStream* s, const CACHE_BITMAP_ORDER* cache_bitmap_order, BOOL compressed, UINT16* flags); FREERDP_LOCAL size_t update_approximate_cache_bitmap_v2_order( - CACHE_BITMAP_V2_ORDER* cache_bitmap_v2, BOOL compressed, UINT16* flags); + CACHE_BITMAP_V2_ORDER* cache_bitmap_v2, BOOL compressed, const UINT16* flags); FREERDP_LOCAL BOOL update_write_cache_bitmap_v2_order(wStream* s, CACHE_BITMAP_V2_ORDER* cache_bitmap_v2_order, BOOL compressed, UINT16* flags); @@ -251,24 +251,24 @@ FREERDP_LOCAL BOOL update_write_cache_bitmap_v3_order(wStream* s, UINT16* flags); FREERDP_LOCAL size_t update_approximate_cache_color_table_order( - const CACHE_COLOR_TABLE_ORDER* cache_color_table, UINT16* flags); + const CACHE_COLOR_TABLE_ORDER* cache_color_table, const UINT16* flags); FREERDP_LOCAL BOOL update_write_cache_color_table_order( wStream* s, const CACHE_COLOR_TABLE_ORDER* cache_color_table_order, UINT16* flags); FREERDP_LOCAL size_t update_approximate_cache_glyph_order(const CACHE_GLYPH_ORDER* cache_glyph, - UINT16* flags); + const UINT16* flags); FREERDP_LOCAL BOOL update_write_cache_glyph_order(wStream* s, const CACHE_GLYPH_ORDER* cache_glyph_order, UINT16* flags); -FREERDP_LOCAL size_t -update_approximate_cache_glyph_v2_order(const CACHE_GLYPH_V2_ORDER* cache_glyph_v2, UINT16* flags); +FREERDP_LOCAL size_t update_approximate_cache_glyph_v2_order( + const CACHE_GLYPH_V2_ORDER* cache_glyph_v2, const UINT16* flags); FREERDP_LOCAL BOOL update_write_cache_glyph_v2_order(wStream* s, const CACHE_GLYPH_V2_ORDER* cache_glyph_v2, UINT16* flags); FREERDP_LOCAL size_t update_approximate_cache_brush_order(const CACHE_BRUSH_ORDER* cache_brush, - UINT16* flags); + const UINT16* flags); FREERDP_LOCAL BOOL update_write_cache_brush_order(wStream* s, const CACHE_BRUSH_ORDER* cache_brush_order, UINT16* flags); diff --git a/libfreerdp/core/proxy.c b/libfreerdp/core/proxy.c index ece684ff8..161d43e76 100644 --- a/libfreerdp/core/proxy.c +++ b/libfreerdp/core/proxy.c @@ -652,7 +652,7 @@ static BOOL http_proxy_connect(BIO* bufferedBio, const char* proxyUsername, recv_buf[7] = 'X'; - if (strncmp(recv_buf, "HTTP/1.X 200", 12)) + if (strncmp(recv_buf, "HTTP/1.X 200", 12) != 0) goto fail; rc = TRUE; diff --git a/libfreerdp/core/rdp.c b/libfreerdp/core/rdp.c index 0e220c138..7783cfe26 100644 --- a/libfreerdp/core/rdp.c +++ b/libfreerdp/core/rdp.c @@ -692,6 +692,8 @@ static BOOL rdp_security_stream_out(rdpRdp* rdp, wStream* s, int length, UINT32 { BOOL status = 0; WINPR_ASSERT(rdp); + WINPR_ASSERT(length >= 0); + sec_flags |= rdp->sec_flags; *pad = 0; @@ -709,7 +711,12 @@ static BOOL rdp_security_stream_out(rdpRdp* rdp, wStream* s, int length, UINT32 if (rdp->settings->EncryptionMethods == ENCRYPTION_METHOD_FIPS) { BYTE* data = Stream_PointerAs(s, BYTE) + 12; - length = length - (data - Stream_Buffer(s)); + const size_t size = (data - Stream_Buffer(s)); + if (size > length) + goto unlock; + + length -= (int)size; + Stream_Write_UINT16(s, 0x10); /* length */ Stream_Write_UINT8(s, 0x1); /* TSFIPS_VERSION 1*/ /* handle padding */ diff --git a/libfreerdp/core/redirection.c b/libfreerdp/core/redirection.c index eec124f38..6904680e9 100644 --- a/libfreerdp/core/redirection.c +++ b/libfreerdp/core/redirection.c @@ -250,7 +250,9 @@ static BOOL rdp_redirection_read_base64_wchar(UINT32 flag, wStream* s, UINT32* p redirection_free_data(pData, NULL); utf8_len = strnlen(utf8, utf8_len); - *pData = calloc(utf8_len, sizeof(BYTE)); + *pData = NULL; + if (utf8_len > 0) + *pData = calloc(utf8_len, sizeof(BYTE)); if (!*pData) goto fail; diff --git a/libfreerdp/core/server.c b/libfreerdp/core/server.c index 664ea4de3..fe3c2cc5a 100644 --- a/libfreerdp/core/server.c +++ b/libfreerdp/core/server.c @@ -1558,7 +1558,8 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer, CopyMemory(buffer, Buffer, length); totalWritten = Length; - ret = wts_queue_send_item(channel, buffer, length); + if (!wts_queue_send_item(channel, buffer, length)) + goto fail; } else if (!channel->vcm->drdynvc_channel || (channel->vcm->drdynvc_state != DRDYNVC_STATE_READY)) { diff --git a/libfreerdp/core/settings.h b/libfreerdp/core/settings.h index 270925a89..7d30a7696 100644 --- a/libfreerdp/core/settings.h +++ b/libfreerdp/core/settings.h @@ -40,7 +40,7 @@ FREERDP_LOCAL BOOL freerdp_settings_set_default_order_support(rdpSettings* setti FREERDP_LOCAL BOOL freerdp_settings_clone_keys(rdpSettings* dst, const rdpSettings* src); FREERDP_LOCAL void freerdp_settings_free_keys(rdpSettings* dst, BOOL cleanup); FREERDP_LOCAL BOOL freerdp_settings_set_string_(rdpSettings* settings, - FreeRDP_Settings_Keys_String id, char* val, + FreeRDP_Settings_Keys_String id, const char* val, size_t len); FREERDP_LOCAL BOOL freerdp_settings_set_string_copy_(rdpSettings* settings, FreeRDP_Settings_Keys_String id, diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index 3f2236b38..d2be0db1f 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -895,7 +895,7 @@ static void peer_free(t_peer* peer) peer->s = INVALID_SOCKET; } -static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, UINT32* ports, +static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, const UINT32* ports, UINT32 count, UINT16 port, UINT32 timeout) { UINT32 sindex = count; diff --git a/libfreerdp/core/test/TestVersion.c b/libfreerdp/core/test/TestVersion.c index 5910c4845..1853e7827 100644 --- a/libfreerdp/core/test/TestVersion.c +++ b/libfreerdp/core/test/TestVersion.c @@ -32,7 +32,7 @@ int TestVersion(int argc, char* argv[]) if (!git) return -1; - if (strncmp(git, FREERDP_GIT_REVISION, sizeof(FREERDP_GIT_REVISION))) + if (strncmp(git, FREERDP_GIT_REVISION, sizeof(FREERDP_GIT_REVISION)) != 0) return -1; build = freerdp_get_build_config(); diff --git a/libfreerdp/core/update.c b/libfreerdp/core/update.c index 94a7c3e4d..615179672 100644 --- a/libfreerdp/core/update.c +++ b/libfreerdp/core/update.c @@ -377,8 +377,8 @@ fail: return NULL; } -static BOOL _update_read_pointer_color(wStream* s, POINTER_COLOR_UPDATE* pointer_color, BYTE xorBpp, - UINT32 flags) +static BOOL s_update_read_pointer_color(wStream* s, POINTER_COLOR_UPDATE* pointer_color, + BYTE xorBpp, UINT32 flags) { BYTE* newMask = NULL; UINT32 scanlineSize = 0; @@ -514,8 +514,8 @@ POINTER_COLOR_UPDATE* update_read_pointer_color(rdpUpdate* update, wStream* s, B if (!pointer_color) goto fail; - if (!_update_read_pointer_color(s, pointer_color, xorBpp, - update->context->settings->LargePointerFlag)) + if (!s_update_read_pointer_color(s, pointer_color, xorBpp, + update->context->settings->LargePointerFlag)) goto fail; return pointer_color; @@ -527,7 +527,7 @@ fail: return NULL; } -static BOOL _update_read_pointer_large(wStream* s, POINTER_LARGE_UPDATE* pointer) +static BOOL s_update_read_pointer_large(wStream* s, POINTER_LARGE_UPDATE* pointer) { BYTE* newMask = NULL; UINT32 scanlineSize = 0; @@ -644,7 +644,7 @@ POINTER_LARGE_UPDATE* update_read_pointer_large(rdpUpdate* update, wStream* s) if (!pointer) goto fail; - if (!_update_read_pointer_large(s, pointer)) + if (!s_update_read_pointer_large(s, pointer)) goto fail; return pointer; @@ -676,8 +676,9 @@ POINTER_NEW_UPDATE* update_read_pointer_new(rdpUpdate* update, wStream* s) goto fail; } - if (!_update_read_pointer_color(s, &pointer_new->colorPtrAttr, pointer_new->xorBpp, - update->context->settings->LargePointerFlag)) /* colorPtrAttr */ + if (!s_update_read_pointer_color( + s, &pointer_new->colorPtrAttr, pointer_new->xorBpp, + update->context->settings->LargePointerFlag)) /* colorPtrAttr */ goto fail; return pointer_new; @@ -984,7 +985,7 @@ void update_post_disconnect(rdpUpdate* update) up->initialState = TRUE; } -static BOOL _update_begin_paint(rdpContext* context) +static BOOL s_update_begin_paint(rdpContext* context) { wStream* s = NULL; WINPR_ASSERT(context); @@ -1011,7 +1012,7 @@ static BOOL _update_begin_paint(rdpContext* context) return TRUE; } -static BOOL _update_end_paint(rdpContext* context) +static BOOL s_update_end_paint(rdpContext* context) { wStream* s = NULL; WINPR_ASSERT(context); @@ -3128,8 +3129,8 @@ void update_register_server_callbacks(rdpUpdate* update) { WINPR_ASSERT(update); - update->BeginPaint = _update_begin_paint; - update->EndPaint = _update_end_paint; + update->BeginPaint = s_update_begin_paint; + update->EndPaint = s_update_end_paint; update->SetBounds = update_set_bounds; update->Synchronize = update_send_synchronize; update->DesktopResize = update_send_desktop_resize; diff --git a/libfreerdp/crypto/test/TestBase64.c b/libfreerdp/crypto/test/TestBase64.c index cb330c692..9576f669e 100644 --- a/libfreerdp/crypto/test/TestBase64.c +++ b/libfreerdp/crypto/test/TestBase64.c @@ -65,7 +65,7 @@ int TestBase64(int argc, char* argv[]) char* encoded = crypto_base64_encode((const BYTE*)encodeTests_base64[i].input, encodeTests_base64[i].len); - if (strcmp(encodeTests_base64[i].output, encoded)) + if (strcmp(encodeTests_base64[i].output, encoded) != 0) { (void)fprintf(stderr, "ko, error for string %d\n", i); return -1; @@ -83,7 +83,7 @@ int TestBase64(int argc, char* argv[]) char* encoded = crypto_base64url_encode((const BYTE*)encodeTests_base64url[i].input, encodeTests_base64url[i].len); - if (strcmp(encodeTests_base64url[i].output, encoded)) + if (strcmp(encodeTests_base64url[i].output, encoded) != 0) { (void)fprintf(stderr, "ko, error for string %d\n", i); return -1; @@ -102,7 +102,7 @@ int TestBase64(int argc, char* argv[]) &decoded, &outLen); if (!decoded || (outLen != encodeTests_base64[i].len) || - memcmp(encodeTests_base64[i].input, decoded, outLen)) + memcmp(encodeTests_base64[i].input, decoded, outLen) != 0) { (void)fprintf(stderr, "ko, error for string %d\n", i); return -1; @@ -121,7 +121,7 @@ int TestBase64(int argc, char* argv[]) strlen(encodeTests_base64url[i].output), &decoded, &outLen); if (!decoded || (outLen != encodeTests_base64url[i].len) || - memcmp(encodeTests_base64url[i].input, decoded, outLen)) + memcmp(encodeTests_base64url[i].input, decoded, outLen) != 0) { (void)fprintf(stderr, "ko, error for string %d\n", i); return -1; diff --git a/libfreerdp/crypto/tls.c b/libfreerdp/crypto/tls.c index 180010aff..cdc928c1c 100644 --- a/libfreerdp/crypto/tls.c +++ b/libfreerdp/crypto/tls.c @@ -821,7 +821,7 @@ static BOOL tls_prepare(rdpTls* tls, BIO* underlying, SSL_METHOD* method, int op return TRUE; } -static void adjustSslOptions(int* options) +static void adjustSslOptions(const int* options) { WINPR_ASSERT(options); #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) diff --git a/libfreerdp/gdi/bitmap.c b/libfreerdp/gdi/bitmap.c index bb0929edc..8fa3a2515 100644 --- a/libfreerdp/gdi/bitmap.c +++ b/libfreerdp/gdi/bitmap.c @@ -177,7 +177,7 @@ HGDI_BITMAP gdi_CreateCompatibleBitmap(HGDI_DC hdc, UINT32 nWidth, UINT32 nHeigh return hBitmap; } -static BOOL op_not(UINT32* stack, UINT32* stackp) +static BOOL op_not(UINT32* stack, const UINT32* stackp) { if (!stack || !stackp) return FALSE; diff --git a/libfreerdp/gdi/line.c b/libfreerdp/gdi/line.c index 95c828858..1c4a6ab29 100644 --- a/libfreerdp/gdi/line.c +++ b/libfreerdp/gdi/line.c @@ -270,7 +270,7 @@ BOOL gdi_Polyline(HGDI_DC hdc, GDI_POINT* lppt, UINT32 cPoints) * @param cCount count of entries in lpdwPolyPoints * @return nonzero on success, 0 otherwise */ -BOOL gdi_PolyPolyline(HGDI_DC hdc, GDI_POINT* lppt, UINT32* lpdwPolyPoints, DWORD cCount) +BOOL gdi_PolyPolyline(HGDI_DC hdc, GDI_POINT* lppt, const UINT32* lpdwPolyPoints, DWORD cCount) { DWORD j = 0; diff --git a/libfreerdp/gdi/line.h b/libfreerdp/gdi/line.h index d4f826717..9549deec8 100644 --- a/libfreerdp/gdi/line.h +++ b/libfreerdp/gdi/line.h @@ -33,7 +33,7 @@ extern "C" FREERDP_LOCAL BOOL gdi_LineTo(HGDI_DC hdc, UINT32 nXEnd, UINT32 nYEnd); FREERDP_LOCAL BOOL gdi_PolylineTo(HGDI_DC hdc, GDI_POINT* lppt, DWORD cCount); FREERDP_LOCAL BOOL gdi_Polyline(HGDI_DC hdc, GDI_POINT* lppt, UINT32 cPoints); - FREERDP_LOCAL BOOL gdi_PolyPolyline(HGDI_DC hdc, GDI_POINT* lppt, UINT32* lpdwPolyPoints, + FREERDP_LOCAL BOOL gdi_PolyPolyline(HGDI_DC hdc, GDI_POINT* lppt, const UINT32* lpdwPolyPoints, DWORD cCount); FREERDP_LOCAL BOOL gdi_MoveToEx(HGDI_DC hdc, UINT32 X, UINT32 Y, HGDI_POINT lpPoint); diff --git a/libfreerdp/locale/keyboard.c b/libfreerdp/locale/keyboard.c index 4c4dd1990..86b73d6c2 100644 --- a/libfreerdp/locale/keyboard.c +++ b/libfreerdp/locale/keyboard.c @@ -255,8 +255,8 @@ static int freerdp_detect_keyboard(DWORD* keyboardLayoutId) return 0; } -static int freerdp_keyboard_init_apple(DWORD* keyboardLayoutId, DWORD* x11_keycode_to_rdp_scancode, - size_t count) +static int freerdp_keyboard_init_apple(const DWORD* keyboardLayoutId, + DWORD* x11_keycode_to_rdp_scancode, size_t count) { WINPR_ASSERT(x11_keycode_to_rdp_scancode); WINPR_ASSERT(keyboardLayoutId); @@ -272,7 +272,7 @@ static int freerdp_keyboard_init_apple(DWORD* keyboardLayoutId, DWORD* x11_keyco return 0; } -static int freerdp_keyboard_init_x11_evdev(DWORD* keyboardLayoutId, +static int freerdp_keyboard_init_x11_evdev(const DWORD* keyboardLayoutId, DWORD* x11_keycode_to_rdp_scancode, size_t count) { WINPR_ASSERT(keyboardLayoutId); diff --git a/libfreerdp/primitives/prim_YUV.c b/libfreerdp/primitives/prim_YUV.c index 0ab03d16e..416e6f672 100644 --- a/libfreerdp/primitives/prim_YUV.c +++ b/libfreerdp/primitives/prim_YUV.c @@ -632,7 +632,7 @@ static INLINE BYTE RGB2V(INT32 R, INT32 G, INT32 B) static pstatus_t general_RGBToYUV444_8u_P3AC4R(const BYTE* WINPR_RESTRICT pSrc, UINT32 SrcFormat, const UINT32 srcStep, BYTE* WINPR_RESTRICT pDst[3], - UINT32 dstStep[3], + const UINT32 dstStep[3], const prim_size_t* WINPR_RESTRICT roi) { const UINT32 bpp = FreeRDPGetBytesPerPixel(SrcFormat); diff --git a/libfreerdp/primitives/sse/prim_colors_sse2.c b/libfreerdp/primitives/sse/prim_colors_sse2.c index d638336ae..f76d2f413 100644 --- a/libfreerdp/primitives/sse/prim_colors_sse2.c +++ b/libfreerdp/primitives/sse/prim_colors_sse2.c @@ -41,10 +41,10 @@ static primitives_t* generic = NULL; #define CACHE_LINE_BYTES 64 -#define _mm_between_epi16(_val, _min, _max) \ - do \ - { \ - _val = _mm_min_epi16(_max, _mm_max_epi16(_val, _min)); \ +#define mm_between_epi16(_val, _min, _max) \ + do \ + { \ + (_val) = _mm_min_epi16(_max, _mm_max_epi16(_val, _min)); \ } while (0) #ifdef DO_PREFETCH @@ -173,20 +173,20 @@ sse2_yCbCrToRGB_16s16s_P3P3(const INT16* const WINPR_RESTRICT pSrc[3], int srcSt r = _mm_add_epi16(y, _mm_mulhi_epi16(cr, r_cr)); r = _mm_srai_epi16(r, 3); /* r_buf[i] = CLIP(r); */ - _mm_between_epi16(r, zero, max); + mm_between_epi16(r, zero, max); _mm_store_si128(r_buf + i, r); /* (y + HIWORD(cb*-5636) + HIWORD(cr*-11698)) >> 3 */ g = _mm_add_epi16(y, _mm_mulhi_epi16(cb, g_cb)); g = _mm_add_epi16(g, _mm_mulhi_epi16(cr, g_cr)); g = _mm_srai_epi16(g, 3); /* g_buf[i] = CLIP(g); */ - _mm_between_epi16(g, zero, max); + mm_between_epi16(g, zero, max); _mm_store_si128(g_buf + i, g); /* (y + HIWORD(cb*28999)) >> 3 */ b = _mm_add_epi16(y, _mm_mulhi_epi16(cb, b_cb)); b = _mm_srai_epi16(b, 3); /* b_buf[i] = CLIP(b); */ - _mm_between_epi16(b, zero, max); + mm_between_epi16(b, zero, max); _mm_store_si128(b_buf + i, b); } @@ -294,18 +294,18 @@ sse2_yCbCrToRGB_16s8u_P3AC4R_BGRX(const INT16* const WINPR_RESTRICT pSrc[3], UIN r1 = _mm_add_epi16(y1, _mm_mulhi_epi16(cr1, r_cr)); r1 = _mm_srai_epi16(r1, 3); /* r_buf[i] = CLIP(r); */ - _mm_between_epi16(r1, zero, max); + mm_between_epi16(r1, zero, max); /* (y + HIWORD(cb*-5636) + HIWORD(cr*-11698)) >> 3 */ g1 = _mm_add_epi16(y1, _mm_mulhi_epi16(cb1, g_cb)); g1 = _mm_add_epi16(g1, _mm_mulhi_epi16(cr1, g_cr)); g1 = _mm_srai_epi16(g1, 3); /* g_buf[i] = CLIP(g); */ - _mm_between_epi16(g1, zero, max); + mm_between_epi16(g1, zero, max); /* (y + HIWORD(cb*28999)) >> 3 */ b1 = _mm_add_epi16(y1, _mm_mulhi_epi16(cb1, b_cb)); b1 = _mm_srai_epi16(b1, 3); /* b_buf[i] = CLIP(b); */ - _mm_between_epi16(b1, zero, max); + mm_between_epi16(b1, zero, max); y2 = _mm_load_si128((const __m128i*)y_buf); y_buf += step; y2 = _mm_add_epi16(y2, c4096); @@ -320,18 +320,18 @@ sse2_yCbCrToRGB_16s8u_P3AC4R_BGRX(const INT16* const WINPR_RESTRICT pSrc[3], UIN r2 = _mm_add_epi16(y2, _mm_mulhi_epi16(cr2, r_cr)); r2 = _mm_srai_epi16(r2, 3); /* r_buf[i] = CLIP(r); */ - _mm_between_epi16(r2, zero, max); + mm_between_epi16(r2, zero, max); /* (y + HIWORD(cb*-5636) + HIWORD(cr*-11698)) >> 3 */ g2 = _mm_add_epi16(y2, _mm_mulhi_epi16(cb2, g_cb)); g2 = _mm_add_epi16(g2, _mm_mulhi_epi16(cr2, g_cr)); g2 = _mm_srai_epi16(g2, 3); /* g_buf[i] = CLIP(g); */ - _mm_between_epi16(g2, zero, max); + mm_between_epi16(g2, zero, max); /* (y + HIWORD(cb*28999)) >> 3 */ b2 = _mm_add_epi16(y2, _mm_mulhi_epi16(cb2, b_cb)); b2 = _mm_srai_epi16(b2, 3); /* b_buf[i] = CLIP(b); */ - _mm_between_epi16(b2, zero, max); + mm_between_epi16(b2, zero, max); { __m128i R0; __m128i R1; @@ -492,18 +492,18 @@ sse2_yCbCrToRGB_16s8u_P3AC4R_RGBX(const INT16* const WINPR_RESTRICT pSrc[3], UIN r1 = _mm_add_epi16(y1, _mm_mulhi_epi16(cr1, r_cr)); r1 = _mm_srai_epi16(r1, 3); /* r_buf[i] = CLIP(r); */ - _mm_between_epi16(r1, zero, max); + mm_between_epi16(r1, zero, max); /* (y + HIWORD(cb*-5636) + HIWORD(cr*-11698)) >> 3 */ g1 = _mm_add_epi16(y1, _mm_mulhi_epi16(cb1, g_cb)); g1 = _mm_add_epi16(g1, _mm_mulhi_epi16(cr1, g_cr)); g1 = _mm_srai_epi16(g1, 3); /* g_buf[i] = CLIP(g); */ - _mm_between_epi16(g1, zero, max); + mm_between_epi16(g1, zero, max); /* (y + HIWORD(cb*28999)) >> 3 */ b1 = _mm_add_epi16(y1, _mm_mulhi_epi16(cb1, b_cb)); b1 = _mm_srai_epi16(b1, 3); /* b_buf[i] = CLIP(b); */ - _mm_between_epi16(b1, zero, max); + mm_between_epi16(b1, zero, max); y2 = _mm_load_si128((const __m128i*)y_buf); y_buf += step; y2 = _mm_add_epi16(y2, c4096); @@ -518,18 +518,18 @@ sse2_yCbCrToRGB_16s8u_P3AC4R_RGBX(const INT16* const WINPR_RESTRICT pSrc[3], UIN r2 = _mm_add_epi16(y2, _mm_mulhi_epi16(cr2, r_cr)); r2 = _mm_srai_epi16(r2, 3); /* r_buf[i] = CLIP(r); */ - _mm_between_epi16(r2, zero, max); + mm_between_epi16(r2, zero, max); /* (y + HIWORD(cb*-5636) + HIWORD(cr*-11698)) >> 3 */ g2 = _mm_add_epi16(y2, _mm_mulhi_epi16(cb2, g_cb)); g2 = _mm_add_epi16(g2, _mm_mulhi_epi16(cr2, g_cr)); g2 = _mm_srai_epi16(g2, 3); /* g_buf[i] = CLIP(g); */ - _mm_between_epi16(g2, zero, max); + mm_between_epi16(g2, zero, max); /* (y + HIWORD(cb*28999)) >> 3 */ b2 = _mm_add_epi16(y2, _mm_mulhi_epi16(cb2, b_cb)); b2 = _mm_srai_epi16(b2, 3); /* b_buf[i] = CLIP(b); */ - _mm_between_epi16(b2, zero, max); + mm_between_epi16(b2, zero, max); { __m128i R0; __m128i R1; @@ -734,21 +734,21 @@ sse2_RGBToYCbCr_16s16s_P3P3(const INT16* const WINPR_RESTRICT pSrc[3], int srcSt y = _mm_add_epi16(y, _mm_mulhi_epi16(b, y_b)); y = _mm_add_epi16(y, min); /* y_r_buf[i] = MINMAX(y, 0, (255 << 5)) - (128 << 5); */ - _mm_between_epi16(y, min, max); + mm_between_epi16(y, min, max); _mm_store_si128(y_buf + i, y); /* cb = HIWORD(r*cb_r) + HIWORD(g*cb_g) + HIWORD(b*cb_b) */ cb = _mm_mulhi_epi16(r, cb_r); cb = _mm_add_epi16(cb, _mm_mulhi_epi16(g, cb_g)); cb = _mm_add_epi16(cb, _mm_mulhi_epi16(b, cb_b)); /* cb_g_buf[i] = MINMAX(cb, (-128 << 5), (127 << 5)); */ - _mm_between_epi16(cb, min, max); + mm_between_epi16(cb, min, max); _mm_store_si128(cb_buf + i, cb); /* cr = HIWORD(r*cr_r) + HIWORD(g*cr_g) + HIWORD(b*cr_b) */ cr = _mm_mulhi_epi16(r, cr_r); cr = _mm_add_epi16(cr, _mm_mulhi_epi16(g, cr_g)); cr = _mm_add_epi16(cr, _mm_mulhi_epi16(b, cr_b)); /* cr_b_buf[i] = MINMAX(cr, (-128 << 5), (127 << 5)); */ - _mm_between_epi16(cr, min, max); + mm_between_epi16(cr, min, max); _mm_store_si128(cr_buf + i, cr); }