[client,sdl] fix clipboard leak

This commit is contained in:
akallabeth
2025-06-05 10:44:04 +02:00
parent fbd7246dcc
commit dbeda8e568
2 changed files with 6 additions and 4 deletions

View File

@@ -70,6 +70,7 @@ void sdl_OnChannelDisconnectedEventHandler(void* context, const ChannelDisconnec
{
auto clip = reinterpret_cast<CliprdrClientContext*>(e->pInterface);
WINPR_ASSERT(clip);
(void)sdl->clip.uninit(clip);
clip->custom = nullptr;
}
else if (strcmp(e->name, DISP_DVC_CHANNEL_NAME) == 0)

View File

@@ -1161,10 +1161,6 @@ static void sdl_post_disconnect(freerdp* instance)
auto sdl = get_context(instance->context);
sdl->setConnected(false);
PubSub_UnsubscribeChannelConnected(instance->context->pubSub,
sdl_OnChannelConnectedEventHandler);
PubSub_UnsubscribeChannelDisconnected(instance->context->pubSub,
sdl_OnChannelDisconnectedEventHandler);
gdi_free(instance);
}
@@ -1175,6 +1171,11 @@ static void sdl_post_final_disconnect(freerdp* instance)
if (!instance->context)
return;
PubSub_UnsubscribeChannelConnected(instance->context->pubSub,
sdl_OnChannelConnectedEventHandler);
PubSub_UnsubscribeChannelDisconnected(instance->context->pubSub,
sdl_OnChannelDisconnectedEventHandler);
}
static void sdl_client_cleanup(SdlContext* sdl, int exit_code, const std::string& error_msg)