UPSTREAM: 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

(cherry picked from commit 226586d46b82c0d8157d2e8ea2114c650ea1e869)

BUG=b:308122230
TEST=CQ passes

Change-Id: I4794ea42dd687b9b9cf65d27b5a127dcdf077786
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/modemmanager-next/+/4984342
Commit-Queue: Andrew Lassalle <andrewlassalle@chromium.org>
Commit-Queue: Rukun Mao <rmao@google.com>
Reviewed-by: Andrew Lassalle <andrewlassalle@chromium.org>
Reviewed-by: Rukun Mao <rmao@google.com>
Auto-Submit: Aleksander Morgado <aleksandermj@google.com>
Tested-by: Aleksander Morgado <aleksandermj@google.com>
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c
index 4da522a..96af92f 100644
--- a/src/mm-broadband-modem-mbim.c
+++ b/src/mm-broadband-modem-mbim.c
@@ -6483,9 +6483,11 @@
         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;
         }