From 75d53dbef385f5b8f2336da4b444ea7068e48ebc Mon Sep 17 00:00:00 2001 From: Julian Bouzas <julian.bouzas@collabora.com> Date: Wed, 31 Mar 2021 10:48:14 -0400 Subject: [PATCH] m-si-standard-link: make sure in/out items are valid before activating --- modules/module-si-standard-link.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/module-si-standard-link.c b/modules/module-si-standard-link.c index b1083c1b..9eac5caf 100644 --- a/modules/module-si-standard-link.c +++ b/modules/module-si-standard-link.c @@ -429,7 +429,7 @@ si_standard_link_enable_active (WpSessionItem *si, WpTransition *transition) WpSiStandardLink *self = WP_SI_STANDARD_LINK (si); g_autoptr (WpSessionItem) si_out = NULL; g_autoptr (WpSessionItem) si_in = NULL; - WpSiAcquisition *out_acquisition, *in_acquisition; + WpSiAcquisition *out_acquisition = NULL, *in_acquisition = NULL; if (!wp_session_item_is_configured (si)) { wp_transition_return_error (transition, @@ -438,12 +438,19 @@ si_standard_link_enable_active (WpSessionItem *si, WpTransition *transition) return; } - /* acquire */ + /* make sure in/out items are valid */ si_out = g_weak_ref_get (&self->out_item); si_in = g_weak_ref_get (&self->in_item); + if (!si_out || !si_in) { + wp_transition_return_error (transition, + g_error_new (WP_DOMAIN_LIBRARY, WP_LIBRARY_ERROR_INVARIANT, + "si-standard-link: in/out items are not valid anymore")); + return; + } + + /* acquire */ out_acquisition = wp_si_port_info_get_acquisition (WP_SI_PORT_INFO (si_out)); in_acquisition = wp_si_port_info_get_acquisition (WP_SI_PORT_INFO (si_in)); - if (out_acquisition && in_acquisition) self->n_async_ops_wait = 2; else if (out_acquisition || in_acquisition) -- GitLab