summaryrefslogtreecommitdiff
path: root/user/libqmi/endian.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-04 22:54:08 +0000
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-04 22:54:08 +0000
commit737a61026bad4b53e722a33ad6c40fb747e592ab (patch)
treea02a8509e9327073ab91c296ce6e6686daf00407 /user/libqmi/endian.patch
parentac982e97ea4c60663b73bb13d72da6aef9f9f5a9 (diff)
downloadpackages-737a61026bad4b53e722a33ad6c40fb747e592ab.tar.gz
packages-737a61026bad4b53e722a33ad6c40fb747e592ab.tar.bz2
packages-737a61026bad4b53e722a33ad6c40fb747e592ab.tar.xz
packages-737a61026bad4b53e722a33ad6c40fb747e592ab.zip
user/libqmi: bump to 1.24.0
Diffstat (limited to 'user/libqmi/endian.patch')
-rw-r--r--user/libqmi/endian.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/user/libqmi/endian.patch b/user/libqmi/endian.patch
new file mode 100644
index 000000000..cf84b481b
--- /dev/null
+++ b/user/libqmi/endian.patch
@@ -0,0 +1,69 @@
+From 6030b9bb2e0ed9f3824a34cef548feaefceb9e37 Mon Sep 17 00:00:00 2001
+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
+Date: Fri, 4 Oct 2019 17:45:10 -0500
+Subject: [PATCH 1/2] libqmi-glib: Fix message creation on BE systems
+
+Creation of the fake QMUX header wrote the length as a native value, which
+caused the wrong value to be written on big endian systems.
+
+Before, a test run on a ppc64 system gave:
+
+ERROR:test-message.c:296:test_message_new_request_from_data: assertion failed: (self)
+ /libqmi-glib/message/new/request: OK
+ /libqmi-glib/message/new/request-from-data: FAIL
+
+Adding a g_assert_no_error gave the more helpful message:
+
+ERROR:test-message.c:296:test_message_new_request_from_data: assertion failed (error == NULL): QMUX length and buffer length don't match (3072 != 12) (qmi_core_error_quark, 4)
+
+After this commit is applied, all tests pass on a big endian ppc64 system.
+---
+ src/libqmi-glib/qmi-message.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libqmi-glib/qmi-message.c b/src/libqmi-glib/qmi-message.c
+index b82069e..41c5b43 100644
+--- a/src/libqmi-glib/qmi-message.c
++++ b/src/libqmi-glib/qmi-message.c
+@@ -478,7 +478,7 @@ qmi_message_new_from_data (QmiService service,
+ /* Set up fake QMUX header */
+ buffer = (struct full_message *)(self->data);
+ buffer->marker = QMI_MESSAGE_QMUX_MARKER;
+- buffer->qmux.length = buffer_len - 1;
++ buffer->qmux.length = GUINT16_TO_LE(buffer_len - 1);
+ buffer->qmux.flags = 0;
+ buffer->qmux.service = service;
+ buffer->qmux.client = client_id;
+--
+2.22.1
+
+From e299023094516a5be3ffb05f66ea90c47e966811 Mon Sep 17 00:00:00 2001
+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
+Date: Fri, 4 Oct 2019 17:49:07 -0500
+Subject: [PATCH 2/2] libqmi-glib: Add small error test to test-message
+
+The previous commit was easier to diagnose with the error condition from
+qmi_message_new_from_data provided. This change adds g_assert_no_error to
+the test_message_new_request_from_data case so that any future issues can
+be diagnosed quickly.
+---
+ src/libqmi-glib/test/test-message.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/libqmi-glib/test/test-message.c b/src/libqmi-glib/test/test-message.c
+index b6ea711..e41917a 100644
+--- a/src/libqmi-glib/test/test-message.c
++++ b/src/libqmi-glib/test/test-message.c
+@@ -292,7 +292,8 @@ test_message_new_request_from_data (void)
+ qmi = g_byte_array_new ();
+ g_byte_array_append (qmi, expected_buffer, sizeof (expected_buffer));
+
+- self = qmi_message_new_from_data (QMI_SERVICE_DMS, 0x01, qmi, NULL);
++ self = qmi_message_new_from_data (QMI_SERVICE_DMS, 0x01, qmi, &error);
++ g_assert_no_error (error);
+ g_assert (self);
+
+ /* check that the QMUX header contains the right values*/
+--
+2.22.1
+