From f039d35032921e5fb9394300cb204fe07b59fa06 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 26 Jan 2026 10:08:00 +0100 Subject: [PATCH] [channels] replace casts by proper return addresses Use the base structs return address instead of a derived one so the data types match. --- channels/audin/client/audin_main.c | 2 +- channels/client/generic_dynvc.c | 2 +- channels/rdpecam/client/v4l/camera_v4l.c | 3 ++- channels/video/client/video_main.c | 14 ++++++-------- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/channels/audin/client/audin_main.c b/channels/audin/client/audin_main.c index b4c8ba580..c57c65a62 100644 --- a/channels/audin/client/audin_main.c +++ b/channels/audin/client/audin_main.c @@ -669,7 +669,7 @@ static UINT audin_on_new_channel_connection(IWTSListenerCallback* pListenerCallb callback->plugin = listener_callback->plugin; callback->channel_mgr = listener_callback->channel_mgr; callback->channel = pChannel; - *ppCallback = (IWTSVirtualChannelCallback*)callback; + *ppCallback = &callback->iface; return CHANNEL_RC_OK; } diff --git a/channels/client/generic_dynvc.c b/channels/client/generic_dynvc.c index af6a7a891..3da12310b 100644 --- a/channels/client/generic_dynvc.c +++ b/channels/client/generic_dynvc.c @@ -56,7 +56,7 @@ static UINT generic_on_new_channel_connection(IWTSListenerCallback* pListenerCal listener_callback->channel_callback = callback; listener_callback->channel = pChannel; - *ppCallback = (IWTSVirtualChannelCallback*)callback; + *ppCallback = &callback->iface; return CHANNEL_RC_OK; } diff --git a/channels/rdpecam/client/v4l/camera_v4l.c b/channels/rdpecam/client/v4l/camera_v4l.c index 7be6998bb..223ebd412 100644 --- a/channels/rdpecam/client/v4l/camera_v4l.c +++ b/channels/rdpecam/client/v4l/camera_v4l.c @@ -440,9 +440,10 @@ static size_t cam_v4l_stream_alloc_buffers(CamV4lStream* stream) * * @return 0 on success, otherwise a Win32 error code */ -static UINT cam_v4l_stream_capture_thread(void* param) +static DWORD WINAPI cam_v4l_stream_capture_thread(LPVOID param) { CamV4lStream* stream = (CamV4lStream*)param; + WINPR_ASSERT(stream); int fd = stream->fd; diff --git a/channels/video/client/video_main.c b/channels/video/client/video_main.c index 954861218..3d390ebfc 100644 --- a/channels/video/client/video_main.c +++ b/channels/video/client/video_main.c @@ -680,19 +680,17 @@ static UINT video_control_send_client_notification(VideoClientContext* context, static void video_timer(VideoClientContext* video, UINT64 now) { PresentationContext* presentation = NULL; - VideoClientContextPriv* priv = NULL; - VideoFrame* peekFrame = NULL; VideoFrame* frame = NULL; WINPR_ASSERT(video); - priv = video->priv; + VideoClientContextPriv* priv = video->priv; WINPR_ASSERT(priv); EnterCriticalSection(&priv->framesLock); do { - peekFrame = (VideoFrame*)Queue_Peek(priv->frames); + VideoFrame* peekFrame = (VideoFrame*)Queue_Peek(priv->frames); if (!peekFrame) break; @@ -1032,13 +1030,13 @@ static UINT video_control_on_new_channel_connection(IWTSListenerCallback* listen IWTSVirtualChannelCallback** ppCallback) // NOLINTEND(readability-non-const-parameter) { - GENERIC_CHANNEL_CALLBACK* callback = NULL; GENERIC_LISTENER_CALLBACK* listener_callback = (GENERIC_LISTENER_CALLBACK*)listenerCallback; WINPR_UNUSED(Data); WINPR_UNUSED(pbAccept); - callback = (GENERIC_CHANNEL_CALLBACK*)calloc(1, sizeof(GENERIC_CHANNEL_CALLBACK)); + GENERIC_CHANNEL_CALLBACK* callback = + (GENERIC_CHANNEL_CALLBACK*)calloc(1, sizeof(GENERIC_CHANNEL_CALLBACK)); if (!callback) { WLog_ERR(TAG, "calloc failed!"); @@ -1052,7 +1050,7 @@ static UINT video_control_on_new_channel_connection(IWTSListenerCallback* listen callback->channel = channel; listener_callback->channel_callback = callback; - *ppCallback = (IWTSVirtualChannelCallback*)callback; + *ppCallback = &callback->iface; return CHANNEL_RC_OK; } @@ -1084,7 +1082,7 @@ static UINT video_data_on_new_channel_connection(IWTSListenerCallback* pListener callback->channel = pChannel; listener_callback->channel_callback = callback; - *ppCallback = (IWTSVirtualChannelCallback*)callback; + *ppCallback = &callback->iface; return CHANNEL_RC_OK; }