aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2023-09-11 22:37:46 +0000
committerAleksander Morgado <aleksandermj@chromium.org>2023-09-11 22:37:46 +0000
commit1fc58d4749bdc3f01625ac0092ee93512a628ee2 (patch)
treef8ec008fe1ec64e62913ad139d817b8c28bd4a9b
parent36dc193b409b3393f4ccd9938667b35105f68abd (diff)
broadband-modem: don't assert if no AT port in QMI modem enabling unsolicited messages
2023-09-11T20:23:49.294555Z <err> mm_port_get_device: assertion 'self != NULL' failed 2023-09-11T20:23:49.294691Z <dbg> [modem0] enabling messaging unsolicited events on primary port (null) 2023-09-11T20:23:49.294865Z <dbg> [modem0] enabling parent messaging unsolicited events failed: Cannot run sequence: port not given
-rw-r--r--src/mm-broadband-modem.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index d3892456..01a73ba6 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -7412,6 +7412,15 @@ modem_messaging_enable_unsolicited_events (MMIfaceModemMessaging *self,
task = g_task_new (self, NULL, callback, user_data);
primary = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self));
+ /* Do nothing if the modem doesn't have any AT port (e.g. it could be
+ * a QMI modem trying to enable the parent unsolicited messages) */
+ if (!primary) {
+ g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
+ "No AT port to enable messaging unsolicited events");
+ g_object_unref (task);
+ return;
+ }
+
/* Enable unsolicited events for primary port */
mm_obj_dbg (self, "enabling messaging unsolicited events on primary port %s",
mm_port_get_device (MM_PORT (primary)));