The return value from ofono_modem_register was not being checked. If this fails
the modem object is not setup and causes a crash. This was specifically seen
when using the mbim driver without having configured with mbim support.

Now the modem object gets destroyed properly if the modem registration fails.
---
 plugins/udevng.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/plugins/udevng.c b/plugins/udevng.c
index cd56fd56..f4bf61cf 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -1802,7 +1802,11 @@ static gboolean create_modem(gpointer key, gpointer 
value, gpointer user_data)
                if (driver_list[i].setup(modem) == TRUE) {
                        ofono_modem_set_string(modem->modem, "SystemPath",
                                                                syspath);
-                       ofono_modem_register(modem->modem);
+                       if (ofono_modem_register(modem->modem) < 0) {
+                               DBG("could not register modem '%s'", 
modem->driver);
+                               return TRUE;
+                       }
+
                        return FALSE;
                }
        }
-- 
2.17.0

_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to