summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Ferraris <aferraris@debian.org>2023-10-21 11:43:09 +0200
committerAleksander Morgado <aleksandermj@chromium.org>2023-11-20 16:04:26 +0000
commit76063ef32c4231b68196dec43b21d091c778e87f (patch)
tree3cd1297aff1779878f2d95a712048ac38541cb11
parentdcd8f666b42eadf1e3f8d1508c1ecc44131fdbd3 (diff)
libqmi-glib,message: fix 16-bit service on big endian architecturesqmi-1-34
The latest release introduces handling of 16-bit service indications. However, only the raw message data is returned from `qmi_message_get_service()`, leading to incorrect values on big-endian architectures. As a consequence, `libqmi` ultimately fails to build as the corresponding test errors out in this case. This patch ensures the service indication is correct on all kinds of architectures. (cherry picked from commit 6662764338d3127924cfefaa9cf1b0cc4f90a189)
-rw-r--r--src/libqmi-glib/qmi-message.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libqmi-glib/qmi-message.c b/src/libqmi-glib/qmi-message.c
index 3e31b4b..1918a45 100644
--- a/src/libqmi-glib/qmi-message.c
+++ b/src/libqmi-glib/qmi-message.c
@@ -226,7 +226,7 @@ qmi_message_get_service (QmiMessage *self)
if (MESSAGE_IS_QMUX (self))
return (QmiService)((struct full_message *)(self->data))->header.qmux.service;
- return (QmiService)((struct full_message *)(self->data))->header.qrtr.service;
+ return (QmiService)GUINT16_FROM_LE (((struct full_message *)(self->data))->header.qrtr.service);
}
guint8