diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2023-10-27 12:42:54 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2023-10-27 12:45:42 +0000 |
commit | 226586d46b82c0d8157d2e8ea2114c650ea1e869 (patch) | |
tree | fddb4e2b8148bc1ca551df132dff9a9949250e30 /src | |
parent | 2b0c7505fb6843115f9d9f99b42fb438dc4da5c1 (diff) |
broadband-modem-mbim: fix crash with missing ICCID
Output fields like ICCID or IMSI are optional in MBIM Subscriber Ready
Status v3 operations. We should not assume they are set to a valid
value when the operation succeeds.
2023-10-27T10:24:16.512461Z <inf> [modem0] started checking for basic SIM details...
2023-10-27T10:24:16.516104Z <err> mm_3gpp_parse_iccid: assertion 'raw_iccid != NULL' failed
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 8b2eaaa2..e7077574 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -6471,9 +6471,11 @@ basic_sim_details_subscriber_ready_state_ready (MbimDevice *device, sim_details = g_slice_new0 (SimDetails); if (ready_state != MBIM_SUBSCRIBER_READY_STATE_SIM_NOT_INSERTED) { sim_details->sim_inserted = TRUE; - sim_details->iccid = mm_3gpp_parse_iccid (raw_iccid, &inner_error); - if (!sim_details->iccid) { - mm_obj_warn (self, "can not get ICCID info: couldn't parse SIM ICCID: %s", inner_error->message); + if (raw_iccid) { + sim_details->iccid = mm_3gpp_parse_iccid (raw_iccid, &inner_error); + if (!sim_details->iccid) { + mm_obj_warn (self, "can not get ICCID info: couldn't parse SIM ICCID: %s", inner_error->message); + } } sim_details->imsi = imsi; } |