UPSTREAM: sim-mbim: report error if decoding EID from APDU response fails

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/510

BUG=b:219754938
TEST=Check that cellular connectivity is established with and without
eSIM. tast run ${cr} '("group:cellular" && "cellular_sim_active")'

Change-Id: Icf1729d3d0675d74d3dd5c75c338b0c63007c3e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/modemmanager-next/+/3472883
Reviewed-by: Andrew Lassalle <andrewlassalle@chromium.org>
Tested-by: Pavan Holla <pholla@google.com>
Commit-Queue: Pavan Holla <pholla@google.com>
(cherry picked from commit ac624bb71d41abb8d1a57881152a4c54da831927)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/modemmanager-next/+/3473187
diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c
index bf662b5..2bca42a 100644
--- a/src/mm-sim-mbim.c
+++ b/src/mm-sim-mbim.c
@@ -298,9 +298,13 @@
             &apdu_response,
             &error))
         ctx->saved_error = error;
-    else
+    else {
         ctx->eid = mm_decode_eid ((const gchar *)(apdu_response + EID_APDU_HEADER),
                                   apdu_response_size - EID_APDU_HEADER);
+        if (!ctx->eid)
+            ctx->saved_error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_INVALID_ARGS,
+                                            "Invalid APDU response: unable to decode EID");
+    }
 
     /* always go on to the close channel step, even on error */
     ctx->step++;