From b320f5c065e634a7fd2f98accafa164a1ccd8e1b Mon Sep 17 00:00:00 2001 From: Ben Chan Date: Wed, 1 Aug 2012 11:53:06 -0700 Subject: [PATCH] iface-modem: fix crashes due to removed context --- src/mm-iface-modem.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index e3165f29..f0fbb82a 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -591,9 +591,12 @@ access_technologies_check_ready (MMIfaceModem *self, } else mm_iface_modem_update_access_technologies (self, access_technologies, mask); - /* Remove the running tag */ + /* Remove the running tag. Note that the context may have been removed by + * mm_iface_modem_shutdown when this function is invoked as a callback of + * load_access_technologies. */ ctx = g_object_get_qdata (G_OBJECT (self), access_technologies_check_context_quark); - ctx->running = FALSE; + if (ctx) + ctx->running = FALSE; } static gboolean @@ -843,9 +846,12 @@ signal_quality_check_ready (MMIfaceModem *self, } else update_signal_quality (self, signal_quality, TRUE); - /* Remove the running tag */ + /* Remove the running tag. Note that the context may have been removed by + * mm_iface_modem_shutdown when this function is invoked as a callback of + * load_signal_quality. */ ctx = g_object_get_qdata (G_OBJECT (self), signal_quality_check_context_quark); - ctx->running = FALSE; + if (ctx) + ctx->running = FALSE; } static gboolean