aboutsummaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorFrederic Martinsons <frederic.martinsons@sigfox.com>2020-12-20 18:11:06 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-12-21 13:00:40 +0000
commit18b72a046e89d00d7e7b9f2d718c43d64e595de0 (patch)
tree42cdd907168810f0aea7d4b080ffa7e56d48c44f /cli
parent2f53a08e5f1eef8c1892dc55f32fbacba85565a0 (diff)
mmcli: don't assume that mm_object_peek_modem or mm_object_get_modem return non null
This very peculiar case can happen when an intermediate initiliazition step of a modem fails. The ModemManager daemon should always expose the modem interface but let not assume that in mmcli and protect these calls. Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
Diffstat (limited to 'cli')
-rw-r--r--cli/mmcli-common.c4
-rw-r--r--cli/mmcli-manager.c9
2 files changed, 10 insertions, 3 deletions
diff --git a/cli/mmcli-common.c b/cli/mmcli-common.c
index a5402431..4163f42f 100644
--- a/cli/mmcli-common.c
+++ b/cli/mmcli-common.c
@@ -205,7 +205,9 @@ find_modem (MMManager *manager,
MMModem *modem;
obj = MM_OBJECT (l->data);
- modem = MM_MODEM (mm_object_get_modem (obj));
+ modem = mm_object_get_modem (obj);
+ if (!modem)
+ continue;
if (modem_any ||
(modem_path && g_str_equal (mm_object_get_path (obj), modem_path)) ||
diff --git a/cli/mmcli-manager.c b/cli/mmcli-manager.c
index 01d2972c..011c8c11 100644
--- a/cli/mmcli-manager.c
+++ b/cli/mmcli-manager.c
@@ -332,9 +332,14 @@ output_modem_info (MMObject *obj,
gchar *extra;
const gchar *manufacturer;
const gchar *model;
+ MMModem *modem;
- manufacturer = mm_modem_get_manufacturer (mm_object_peek_modem (obj));
- model = mm_modem_get_model (mm_object_peek_modem (obj));
+ modem = mm_object_peek_modem (obj);
+ if (!modem)
+ return;
+
+ manufacturer = mm_modem_get_manufacturer (modem);
+ model = mm_modem_get_model (modem);
extra = g_strdup_printf ("[%s] %s",
manufacturer ? manufacturer : "manufacturer unknown",
model ? model : "model unknown");