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.
This commit is contained in:

committed by
Aleksander Morgado

parent
e1823e605e
commit
d58305bf1f
@@ -1119,11 +1119,15 @@ disconnect_set_ready (MbimDevice *device,
|
|||||||
} else if (g_error_matches (error,
|
} else if (g_error_matches (error,
|
||||||
MBIM_STATUS_ERROR,
|
MBIM_STATUS_ERROR,
|
||||||
MBIM_STATUS_ERROR_CONTEXT_NOT_ACTIVATED)) {
|
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 (&error);
|
||||||
g_clear_error (&inner_error);
|
g_clear_error (&inner_error);
|
||||||
} else if (g_error_matches (error, MBIM_STATUS_ERROR, MBIM_STATUS_ERROR_FAILURE)) {
|
} 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);
|
g_error_free (error);
|
||||||
error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
|
error = mm_mobile_equipment_error_from_mbim_nw_error (nw_error);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user