diff --git a/channels/rdpecam/client/v4l/uvc_h264.c b/channels/rdpecam/client/v4l/uvc_h264.c index 0cfcedc36..26d9423cd 100644 --- a/channels/rdpecam/client/v4l/uvc_h264.c +++ b/channels/rdpecam/client/v4l/uvc_h264.c @@ -389,7 +389,9 @@ static uint8_t get_guid_unit_id_from_device(libusb_device* device, const uint8_t "For camera %04" PRIx16 ":%04" PRIx16 " found UVCX H264 UnitID %" PRId8, ddesc.idVendor, ddesc.idProduct, unit_id); - return unit_id; + if (unit_id < 0) + return 0; + return WINPR_CXX_COMPAT_CAST(uint8_t, unit_id); } ptr += desc->bLength; } diff --git a/channels/urbdrc/client/libusb/libusb_udevman.c b/channels/urbdrc/client/libusb/libusb_udevman.c index 554620fd4..25660cdee 100644 --- a/channels/urbdrc/client/libusb/libusb_udevman.c +++ b/channels/urbdrc/client/libusb/libusb_udevman.c @@ -791,10 +791,14 @@ static UINT udevman_listener_created_callback(IUDEVMAN* iudevman) WINPR_ASSERT(udevman); if (udevman->devices_vid_pid) - return urbdrc_udevman_register_devices(udevman, udevman->devices_vid_pid, FALSE); + return urbdrc_udevman_register_devices(udevman, udevman->devices_vid_pid, FALSE) + ? CHANNEL_RC_OK + : CHANNEL_RC_INITIALIZATION_ERROR; if (udevman->devices_addr) - return urbdrc_udevman_register_devices(udevman, udevman->devices_addr, TRUE); + return urbdrc_udevman_register_devices(udevman, udevman->devices_addr, TRUE) + ? CHANNEL_RC_OK + : CHANNEL_RC_INITIALIZATION_ERROR; return CHANNEL_RC_OK; } diff --git a/client/X11/xf_monitor.c b/client/X11/xf_monitor.c index 7ea0adda4..f93973fa2 100644 --- a/client/X11/xf_monitor.c +++ b/client/X11/xf_monitor.c @@ -574,7 +574,7 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight) if (freerdp_settings_get_bool(settings, FreeRDP_Workarea)) { - INT64 bottom = xfc->workArea.height + xfc->workArea.y - 1; + INT64 bottom = 1LL * xfc->workArea.height + xfc->workArea.y - 1LL; vscreen->area.top = WINPR_ASSERTING_INT_CAST(UINT16, xfc->workArea.y); vscreen->area.bottom = WINPR_ASSERTING_INT_CAST(UINT16, bottom); } diff --git a/libfreerdp/core/orders.c b/libfreerdp/core/orders.c index 20d9e6fc3..bb2d3dc1c 100644 --- a/libfreerdp/core/orders.c +++ b/libfreerdp/core/orders.c @@ -866,7 +866,7 @@ static INLINE BOOL update_read_delta(wStream* s, INT32* value) Stream_Read_UINT8(s, byte); if (byte & 0x40) - uvalue = (byte | ~0x3F) & UINT32_MAX; + uvalue = WINPR_CXX_COMPAT_CAST(UINT32, (byte | ~0x3F)); else uvalue = (byte & 0x3F); diff --git a/libfreerdp/core/server.c b/libfreerdp/core/server.c index fe307b98d..7e664c393 100644 --- a/libfreerdp/core/server.c +++ b/libfreerdp/core/server.c @@ -63,6 +63,8 @@ typedef struct UINT32 offset; } wtsChannelMessage; +static const DWORD g_err_oom = WINPR_CXX_COMPAT_CAST(DWORD, E_OUTOFMEMORY); + static DWORD g_SessionId = 1; static wHashTable* g_ServerHandles = NULL; @@ -1153,7 +1155,7 @@ BOOL WINAPI FreeRDP_WTSQuerySessionInformationA(HANDLE hServer, DWORD SessionId, if (!pBuffer) { - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); return FALSE; } @@ -1569,7 +1571,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer, if (!buffer) { - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); goto fail; } @@ -1598,7 +1600,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer, if (!s) { WLog_ERR(TAG, "Stream_New failed!"); - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); goto fail; } @@ -1683,7 +1685,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL if (!*ppBuffer) { - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); } else { @@ -1701,7 +1703,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL if (!*ppBuffer) { - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); } else { @@ -1743,7 +1745,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL if (!*ppBuffer) { - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); status = FALSE; } else @@ -1761,7 +1763,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL *ppBuffer = malloc(sizeof(value)); if (!*ppBuffer) { - SetLastError(E_OUTOFMEMORY); + SetLastError(g_err_oom); status = FALSE; } else