aboutsummaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-12-11 11:54:27 +0100
committerAleksander Morgado <aleksander@aleksander.es>2019-12-11 15:08:51 +0100
commit69354f53f180b32c8f183a1217582e557b791220 (patch)
tree49b231a6835e46af28115bcdc74096c830ff9944 /build-aux
parent773f1aa9c986e18893e550165aac090466c1840d (diff)
libqmi-glib,device: check message id before assuming valid response
If the transaction id ends up mismatched between device and libqmi due to some reason, we may end up assuming a response is of a given type when it isn't in reality. Make sure this does not happen, as this would end up triggering a g_return_val_if_fail() check that returns a NULL reply by the parser without GError set, and the users of libqmi, like MM here may not like that: ERR daemon ModemManager[4842]: __qmi_message_ctl_set_data_format_response_parse: assertion 'qmi_message_get_message_id (message) == QMI_MESSAGE_CTL_SET_DATA_FORMAT' failed ERR daemon ModemManager[4842]: __qmi_message_ctl_allocate_cid_response_parse: assertion 'qmi_message_get_message_id (message) == QMI_MESSAGE_CTL_ALLOCATE_CID' failed WARNIN user kernel:[ 687.347162] /tmp/ModemManager.4842.6.1575343251.core core dumped The internal response_parse() methods used by libqmi should always be used when we know that the response matches the expected type.
Diffstat (limited to 'build-aux')
-rw-r--r--build-aux/qmi-codegen/Message.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/build-aux/qmi-codegen/Message.py b/build-aux/qmi-codegen/Message.py
index b5a78f1..a2b0e55 100644
--- a/build-aux/qmi-codegen/Message.py
+++ b/build-aux/qmi-codegen/Message.py
@@ -212,7 +212,7 @@ class Message:
'{\n'
' ${container} *self;\n'
'\n'
- ' g_return_val_if_fail (qmi_message_get_message_id (message) == ${message_id}, NULL);\n'
+ ' g_assert_cmphex (qmi_message_get_message_id (message), ==, ${message_id});\n'
'\n'
' self = g_slice_new0 (${container});\n'
' self->ref_count = 1;\n')