summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsom <somashekhar.puttagangaiah@intel.com>2022-04-04 19:56:49 +0530
committerAleksander Morgado <aleksander@aleksander.es>2022-04-14 01:22:04 +0200
commite7c0d7dd8f9e27d8839e428be9e9bd2d035f3c4c (patch)
tree404a68089248007c650c786e2a66c371a47fb17a
parent4cb6eb647e218568bebd5c9123974d9a81c5c88d (diff)
downloadModemManager-e7c0d7dd8f9e27d8839e428be9e9bd2d035f3c4c.tar.gz
modem-mbim: update default error when network error is out of range
When the modem sends an error which is outside the range defined in MBIM_NW_ERROR list then MM should use a default error(MBIM_NW_ERROR_NONE) instead of crash. (cherry picked from commit 5c8c1136bd3bad2b542a0b3dc334dbd0686ba10d)
-rw-r--r--src/mm-modem-helpers-mbim.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c
index 5cfab7279..3a461f21f 100644
--- a/src/mm-modem-helpers-mbim.c
+++ b/src/mm-modem-helpers-mbim.c
@@ -290,21 +290,24 @@ GError *
mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error,
gpointer log_object)
{
- MMMobileEquipmentError error_code;
const gchar *msg;
- /* convert to mobile equipment error */
- error_code = mbim_nw_errors[nw_error];
- if (error_code)
- return mm_mobile_equipment_error_for_code (error_code, log_object);
-
- /* provide a nicer error message on unmapped errors */
- msg = mbim_nw_error_get_string (nw_error);
- if (msg)
- return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
- "Unsupported error (%u): %s",
- nw_error, msg);
+ if (nw_error < G_N_ELEMENTS (mbim_nw_errors)) {
+ MMMobileEquipmentError error_code;
+
+ /* convert to mobile equipment error */
+ error_code = mbim_nw_errors[nw_error];
+ if (error_code)
+ return mm_mobile_equipment_error_for_code (error_code, log_object);
+
+ /* provide a nicer error message on unmapped errors */
+ msg = mbim_nw_error_get_string (nw_error);
+ if (msg)
+ return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
+ MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
+ "Unsupported error (%u): %s",
+ nw_error, msg);
+ }
/* fallback */
return g_error_new_literal (MM_MOBILE_EQUIPMENT_ERROR,