aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-bearer-qmi.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index 5fa38ad3..c69f58cd 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -566,13 +566,22 @@ process_operator_reserved_pco (MMBearerQmi *self,
guint8 pco_prefix[9];
gsize pco_raw_len;
- if (!qmi_message_wds_get_current_settings_output_get_operator_reserved_pco (output, &tmp_mcc, &tmp_mnc, &mnc_includes_pcs_digit, &array, &container_id, NULL))
- return ;
+ if (!qmi_message_wds_get_current_settings_output_get_operator_reserved_pco (
+ output,
+ &tmp_mcc,
+ &tmp_mnc,
+ &mnc_includes_pcs_digit,
+ &array,
+ &container_id,
+ NULL))
+ return;
- app_specific_info_str = mm_utils_bin2hexstr ((guint8*) (array->data), array->len);
+ app_specific_info_str = ((array->len > 0) ?
+ mm_utils_bin2hexstr ((guint8*) (array->data), array->len) :
+ NULL);
mm_obj_dbg (self, "container ID: %d", container_id);
- mm_obj_dbg (self, "app specific info: %s", app_specific_info_str);
+ mm_obj_dbg (self, "app specific info: %s", app_specific_info_str ? app_specific_info_str : "n/a");
pco_raw_len = sizeof (pco_prefix) + array->len;
pco_prefix[0] = 0x27;
@@ -610,7 +619,8 @@ process_operator_reserved_pco (MMBearerQmi *self,
pco_raw = g_byte_array_sized_new (pco_raw_len);
g_byte_array_append (pco_raw, pco_prefix, sizeof (pco_prefix));
- g_byte_array_append (pco_raw, (const guint8 *)array->data, array->len);
+ if (array->len > 0)
+ g_byte_array_append (pco_raw, (const guint8 *)array->data, array->len);
pco = mm_pco_new ();
/* set session ID to 0 (default) */