[winpr,pubsub] check return of PubSub_Subscribe

This commit is contained in:
Armin Novak
2026-02-27 11:56:23 +01:00
parent 7b47aac9e6
commit 0445ed6734
11 changed files with 70 additions and 44 deletions

View File

@@ -271,16 +271,18 @@ static void wlf_disp_OnGraphicsReset(void* context, const GraphicsResetEventArgs
wlfDispContext* wlf_disp_new(wlfContext* wlc)
{
wlfDispContext* ret = nullptr;
wPubSub* pubSub = nullptr;
rdpSettings* settings = nullptr;
if (!wlc || !wlc->common.context.settings || !wlc->common.context.pubSub)
return nullptr;
settings = wlc->common.context.settings;
pubSub = wlc->common.context.pubSub;
ret = calloc(1, sizeof(wlfDispContext));
rdpSettings* settings = wlc->common.context.settings;
wPubSub* pubSub = wlc->common.context.pubSub;
if (PubSub_SubscribeActivated(pubSub, wlf_disp_OnActivated) < 0)
return nullptr;
if (PubSub_SubscribeGraphicsReset(pubSub, wlf_disp_OnGraphicsReset) < 0)
return nullptr;
wlfDispContext* ret = calloc(1, sizeof(wlfDispContext));
if (!ret)
return nullptr;
@@ -290,8 +292,6 @@ wlfDispContext* wlf_disp_new(wlfContext* wlc)
WINPR_ASSERTING_INT_CAST(int, freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth));
ret->lastSentHeight = ret->targetHeight =
WINPR_ASSERTING_INT_CAST(int, freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight));
PubSub_SubscribeActivated(pubSub, wlf_disp_OnActivated);
PubSub_SubscribeGraphicsReset(pubSub, wlf_disp_OnGraphicsReset);
return ret;
}

View File

@@ -197,9 +197,12 @@ static BOOL wl_pre_connect(freerdp* instance)
return FALSE;
if (!freerdp_settings_set_uint32(settings, FreeRDP_OsMinorType, OSMINORTYPE_NATIVE_WAYLAND))
return FALSE;
PubSub_SubscribeChannelConnected(instance->context->pubSub, wlf_OnChannelConnectedEventHandler);
PubSub_SubscribeChannelDisconnected(instance->context->pubSub,
wlf_OnChannelDisconnectedEventHandler);
if (PubSub_SubscribeChannelConnected(instance->context->pubSub,
wlf_OnChannelConnectedEventHandler) < 0)
return FALSE;
if (PubSub_SubscribeChannelDisconnected(instance->context->pubSub,
wlf_OnChannelDisconnectedEventHandler) < 0)
return FALSE;
if (freerdp_settings_get_bool(settings, FreeRDP_Fullscreen))
{