Skip to content

broadband-modem-qmi: fix crash when device removed during init

If the modem goes away (ports removed) during the initialization phase (e.g. while QMI clients are being allocated), the MMPortQmi object will be closed and it will lose its internal QmiDevice.

We should therefore consider the lack of QmiDevice a valid usecase in track_qmi_device_removed() and return a GError when that happens.

#0  0x00007fb544618cc9 in raise () from /lib/libc.so.6
#1  0x00007fb54461bd68 in abort () from /lib/libc.so.6
#2  0x00007fb544e2213d in g_assertion_message () from /usr/lib/libglib-2.0.so.0
#3  0x00007fb544e221ba in g_assertion_message_expr () from /usr/lib/libglib-2.0.so.0
#4  0x00000000004be584 in track_qmi_device_removed ()
#5  0x00000000004be5e3 in allocate_next_client ()
#6  0x00000000004be7b1 in qmi_port_allocate_client_ready ()
#7  0x00007fb5453690a3 in g_task_return_now () from /usr/lib/libgio-2.0.so.0
#8  0x00007fb54536967e in g_task_return () from /usr/lib/libgio-2.0.so.0
#9  0x00000000004dd8f8 in allocate_client_ready ()
#10 0x00007fb5453690a3 in g_task_return_now () from /usr/lib/libgio-2.0.so.0
#11 0x00007fb54536967e in g_task_return () from /usr/lib/libgio-2.0.so.0
#12 0x00007fb54591d4de in allocate_cid_ready () from /usr/lib/libqmi-glib.so.5
...

Merge request reports