summaryrefslogtreecommitdiff
path: root/src/mm-bearer-mbim.c
diff options
context:
space:
mode:
authorBen Chan <benchan@chromium.org>2017-08-03 13:24:49 -0700
committerAleksander Morgado <aleksander@aleksander.es>2017-08-04 13:41:26 +0200
commitd58305bf1fc89dd44e3d3f267dd4ed7579e7fd61 (patch)
treedc117f8bc6209eadb11affe43bbf85831f1cb1be /src/mm-bearer-mbim.c
parente1823e605e69121fae50e6ca3c097ad7a94156f4 (diff)
bearer-mbim: avoid accessing invalid session_id and nw_error
This patch fixes an issue in disconnect_set_ready(). If mbim_message_connect_response_parse(), `session_id' and `nw_error' are not set to a valid value, and thus shouldn't be used.
Diffstat (limited to 'src/mm-bearer-mbim.c')
-rw-r--r--src/mm-bearer-mbim.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mm-bearer-mbim.c b/src/mm-bearer-mbim.c
index 63bb0579..b6f4bd72 100644
--- a/src/mm-bearer-mbim.c
+++ b/src/mm-bearer-mbim.c
@@ -1119,11 +1119,15 @@ disconnect_set_ready (MbimDevice *device,
} else if (g_error_matches (error,
MBIM_STATUS_ERROR,
MBIM_STATUS_ERROR_CONTEXT_NOT_ACTIVATED)) {
- mm_dbg ("Session ID '%u' already disconnected.", session_id);
+ if (parsed_result)
+ mm_dbg ("Session ID '%u' already disconnected.", session_id);
+ else
+ mm_dbg ("Session ID '<unknown>' already disconnected.");
+
g_clear_error (&error);
g_clear_error (&inner_error);
} else if (g_error_matches (error, MBIM_STATUS_ERROR, MBIM_STATUS_ERROR_FAILURE)) {
- if (nw_error) {
+ if (parsed_result && nw_error != 0) {
g_error_free (error);
error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
}