From 408e9f327e09cda73ab87c92aab34176186d2c3d Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 24 Jun 2020 09:31:30 +0200 Subject: [PATCH] broadband-modem-qmi: fix assertion when disabling unsolicited events Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/230 --- src/mm-broadband-modem-qmi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index 6125cd4f..e3a616ae 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -4739,17 +4739,17 @@ common_enable_disable_unsolicited_events_signal_strength (GTask *task) g_autoptr(QmiMessageNasSetEventReportInput) input = NULL; g_autoptr(GArray) thresholds = NULL; + /* The device doesn't really like to have many threshold values, so don't + * grow this array without checking first */ + static const gint8 thresholds_data[] = { -80, -40, 0, 40, 80 }; + ctx = g_task_get_task_data (task); - /* Only set thresholds during enable */ - if (ctx->enable) { - /* The device doesn't really like to have many threshold values, so don't - * grow this array without checking first */ - static const gint8 thresholds_data[] = { -80, -40, 0, 40, 80 }; - - thresholds = g_array_sized_new (FALSE, FALSE, sizeof (gint8), G_N_ELEMENTS (thresholds_data)); + /* Only set thresholds during enable, but always create the array anyway, + * as the TLV setter expects it */ + thresholds = g_array_sized_new (FALSE, FALSE, sizeof (gint8), G_N_ELEMENTS (thresholds_data)); + if (ctx->enable) g_array_append_vals (thresholds, thresholds_data, G_N_ELEMENTS (thresholds_data)); - } input = qmi_message_nas_set_event_report_input_new (); qmi_message_nas_set_event_report_input_set_signal_strength_indicator (