From 096950254116c2915c2da7f79d0f628bbe2f5cff Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 3 Jan 2025 09:45:30 +0100 Subject: [PATCH] [warnings] fix warnings detected by latest CI build --- libfreerdp/codec/ncrush.c | 5 ++--- libfreerdp/core/gateway/websocket.c | 2 +- libfreerdp/core/transport.c | 3 --- libfreerdp/gdi/gdi.h | 3 +++ libfreerdp/primitives/prim_colors.c | 7 ++++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libfreerdp/codec/ncrush.c b/libfreerdp/codec/ncrush.c index bda9a981f..89eb4a46e 100644 --- a/libfreerdp/codec/ncrush.c +++ b/libfreerdp/codec/ncrush.c @@ -2614,9 +2614,8 @@ int ncrush_compress(NCRUSH_CONTEXT* ncrush, const BYTE* pSrcData, UINT32 SrcSize CopyOffset = 0; MatchOffset = 0; const intptr_t thsize = HistoryPtr - HistoryBuffer; - WINPR_ASSERT(thsize >= 0); - WINPR_ASSERT(thsize <= UINT32_MAX); - ncrush_hash_table_add(ncrush, pSrcData, SrcSize, (UINT32)thsize); + + ncrush_hash_table_add(ncrush, pSrcData, SrcSize, WINPR_ASSERTING_INT_CAST(UINT32, thsize)); CopyMemory(HistoryPtr, pSrcData, SrcSize); ncrush->HistoryPtr = &HistoryPtr[SrcSize]; diff --git a/libfreerdp/core/gateway/websocket.c b/libfreerdp/core/gateway/websocket.c index 0cddf6a9c..6827214c4 100644 --- a/libfreerdp/core/gateway/websocket.c +++ b/libfreerdp/core/gateway/websocket.c @@ -440,7 +440,7 @@ int websocket_context_read(websocket_context* encodingContext, BIO* bio, BYTE* p effectiveDataLen += status; - if ((size_t)status == size) + if ((size_t)status >= size) return effectiveDataLen; pBuffer += status; size -= WINPR_ASSERTING_INT_CAST(size_t, status); diff --git a/libfreerdp/core/transport.c b/libfreerdp/core/transport.c index 1513b5d3e..ade66fc08 100644 --- a/libfreerdp/core/transport.c +++ b/libfreerdp/core/transport.c @@ -1045,9 +1045,6 @@ SSIZE_T transport_parse_pdu(rdpTransport* transport, wStream* s, BOOL* incomplet if (pduLength <= 0) return pduLength; - if (pduLength > SSIZE_MAX) - return -1; - const size_t len = Stream_Length(s); if (len > WINPR_ASSERTING_INT_CAST(size_t, pduLength)) return -1; diff --git a/libfreerdp/gdi/gdi.h b/libfreerdp/gdi/gdi.h index dc3924bfe..5ffda0e50 100644 --- a/libfreerdp/gdi/gdi.h +++ b/libfreerdp/gdi/gdi.h @@ -76,6 +76,9 @@ static INLINE BYTE* gdi_get_brush_pointer(HGDI_DC hdcBrush, UINT32 x, UINT32 y) * brush origin and dest coordinates */ const UINT32 w = WINPR_ASSERTING_INT_CAST(UINT32, hBmpBrush->width); const UINT32 h = WINPR_ASSERTING_INT_CAST(UINT32, hBmpBrush->height); + + WINPR_ASSERT(w > 0); + WINPR_ASSERT(h > 0); x = (x + w - (WINPR_ASSERTING_INT_CAST(UINT32, hdcBrush->brush->nXOrg) % w)) % w; y = (y + h - (WINPR_ASSERTING_INT_CAST(UINT32, hdcBrush->brush->nYOrg) % h)) % h; p = hBmpBrush->data + (y * hBmpBrush->scanline) + diff --git a/libfreerdp/primitives/prim_colors.c b/libfreerdp/primitives/prim_colors.c index d05f89729..32b6926af 100644 --- a/libfreerdp/primitives/prim_colors.c +++ b/libfreerdp/primitives/prim_colors.c @@ -242,9 +242,10 @@ general_yCbCrToRGB_16s16s_P3P3(const INT16* WINPR_RESTRICT pSrc[3], INT32 srcSte * B: 1.770 << 16 = 115998 */ cy = (INT32)((UINT32)(cy + 4096) << 16); - r = cy + cr * ycbcr_constants[16][0]; - g = cy - cb * ycbcr_constants[16][1] - cr * ycbcr_constants[16][2]; - b = cy + cb * ycbcr_constants[16][3]; + + r = 1LL * cy + 1LL * cr * ycbcr_constants[16][0]; + g = 1LL * cy - 1LL * cb * ycbcr_constants[16][1] - 1LL * cr * ycbcr_constants[16][2]; + b = 1LL * cy + 1LL * cb * ycbcr_constants[16][3]; *rptr++ = CLIP(r >> 21); *gptr++ = CLIP(g >> 21); *bptr++ = CLIP(b >> 21);