From 7510b3355d7c1a670ab1eff373ef04bc5a8ad282 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 28 Nov 2018 11:58:33 +0100 Subject: [PATCH] base-modem: fix segfault when disposing modem If we have a modem reference around during an ongoing operation but the modem has already been disposed after getting removed from the system, we were trying to iterate a NULL hash table, which led to a crash. https://lists.freedesktop.org/archives/modemmanager-devel/2018-November/006915.html Reported by Sebastien Fabre --- src/mm-base-modem.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index 8ac52d1b..3b9dc7db 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -959,6 +959,9 @@ mm_base_modem_find_ports (MMBaseModem *self, gpointer value; gpointer key; + if (!self->priv->ports) + return NULL; + /* We'll iterate the ht of ports, looking for any port which is matches * the compare function */ g_hash_table_iter_init (&iter, self->priv->ports);