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
This commit is contained in:
Aleksander Morgado
2023-10-27 12:45:42 +00:00
parent 2b0c7505fb
commit 226586d46b
+5 -3
View File
@@ -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;
}