| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
This allows us to skip needing to include the non-existent
build_string_from_mask() or get_string() counterparts in the
documentation index.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The personalization feature enum in "UIM Card Status" QMI message is
treated differently in QMI modems, and is not same as the existing
'QmiUimCardApplicationPersonalizationFeature' enum. A new enum
'QmiUimCardApplicationPersonalizationFeatureStatus' for the "UIM Card
Status" QMI message is introduced.
The enum change in the QMI message leads to the need of compat symbols
to support API/ABI compatibility. Given that the format and size of
the struct involved in the enum change is the same, i.e. only the
representation of the integer as a different enum changed, we don't
treat the change as a whole TLV rename. Instead, we only change the
struct type that is stored in the GArray/GPtrArray.
We also provide a compat symbol for the UNKNOWN enum name, which the
old enum no longer has.
Originally written by Akash Aggarwal <quic_akasagga@quicinc.com> in
5f366be3000e8c00f7ce73d64606095d3ba4c22e, but later reverted to handle
all the needed compat symbols.
|
| |
|
| |
|
|
|
|
|
|
| |
The release buildtype will disable certain warnings that we do see in
debug builds. Ensure we have a test build with all features enabled in
debug mode.
|
|
|
|
|
|
|
| |
This reverts commit 5f366be3000e8c00f7ce73d64606095d3ba4c22e.
This change introduced a TLV field type change, and we therefore need
proper compat methods to avoid breaking API/ABI.
|
|
|
|
|
|
|
|
|
| |
If the common TLV field defines its own 'since' tag, prefer it over
the 'since' tag specified by the message. This supports the rare case
where a TLV format is updated while keeping the original message name
untouched.
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/104
|
|
|
|
|
|
|
| |
Personalization feature enum in "UIM Card Status" QMI message is treated differently in QMI modem,
and is not same as existing 'QmiUimCardApplicationPersonalizationFeature' enum.
Add new enum 'QmiUimCardApplicationPersonalizationFeatureStatus' for "UIM Card Status" QMI message.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Just to make the compiler happy:
../libqmi-9999/src/qmicli/qmicli-voice.c:71:12: warning: missing field 'short_name' initializer [-Wmissing-field-initializers]
{ NULL }
^
|
|
|
|
|
|
|
| |
This avoids a circumstance where we could fail to parse information
out of the message, but still try to use the uninitialized values
later as all we did in response was set the to-be-returned result
and continue processing.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
==632689== Use of uninitialised value of size 8
==632689== at 0x4D5B94B: _itoa_word (_itoa.c:177)
==632689== by 0x4D66CF8: __vfprintf_internal (vfprintf-process-arg.c:164)
==632689== by 0x4D88245: __vasprintf_internal (vasprintf.c:57)
==632689== by 0x4C7661D: g_vasprintf (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.2)
==632689== by 0x4C47E3C: g_strdup_vprintf (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.2)
==632689== by 0x4C0FFAE: g_error_new_valist (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.2)
==632689== by 0x4C1065A: g_set_error (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.2)
==632689== by 0x4900781: message_check.isra.0 (qmi-message.c:323)
==632689== by 0x49031EC: qmi_message_new_from_raw (qmi-message.c:1529)
==632689== by 0x111F78: test_message_parse_common (test-message.c:91)
==632689== by 0x112206: test_message_parse_wrong_qmux (test-message.c:116)
==632689== by 0x4C5064D: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.2)
|
| |
|
|
|
|
| |
Will be used by MM for GetCellInfo
|
|
|
|
| |
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/101
|
|
|
|
|
|
|
|
|
|
|
|
| |
The response processing operations are scheduled by
g_simple_async_result_complete_in_idle(), which creates an idle source
with G_PRIORITY_DEFAULT priority.
We should schedule the indications with the same priority (instead of
the default G_PRIORITY_DEFAULT_IDLE) so that the processing of
indications and responses are ordered corectly.
See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/951
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the QRTR support is enabled the qmi-glib.pc file should include
'qrtr-glib' as a public requirement instead of a private one, so that
projects building against libqmi can also detect where the
libqrtr-glib headers are available (given that 'qmi-device.h' includes
'libqrtr-glib.h').
Before the change the dependencies in the pkg-config looked like this:
Requires: glib-2.0 >= 2.56, gobject-2.0, gio-2.0
Requires.private: qrtr-glib >= 1.0.0, gio-unix-2.0, mbim-glib >= 1.18.0
And now they look like this:
Requires: glib-2.0 >= 2.56, gobject-2.0, gio-2.0, qrtr-glib >= 1.0.0
Requires.private: gio-unix-2.0, mbim-glib >= 1.18.0
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/99
|
| |
|
|
|
|
| |
umts rscp)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reported by asan during fuzzing:
==1==WARNING: MemorySanitizer: use-of-uninitialized-value
0x7f4261ef6c57 in message_check /build/amd64-generic/tmp/portage/net-libs/libqmi-1.32.0-r125/work/libqmi-1.32.0/src/libqmi-glib/qmi-message.c:331:9
0x7f4261f00b9f in qmi_message_new_from_raw /build/amd64-generic/tmp/portage/net-libs/libqmi-1.32.0-r125/work/libqmi-1.32.0/src/libqmi-glib/qmi-message.c:1527:10
0x557c9f672e6d in LLVMFuzzerTestOneInput /build/amd64-generic/tmp/portage/net-libs/libqmi-1.32.0-r125/work/libqmi-1.32.0/src/libqmi-glib/test/test-message-fuzzer.c:26:15
0x557c9f5c1792 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long)
0x557c9f5ad8a3 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long)
0x557c9f5b2b64 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long))
0x557c9f5da4f2 in main
0x7f42617686c5 in __libc_start_call_main
0x7f4261768781 in __libc_start_main_impl
0x557c9f5a4940 in _start
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't know how many valid bytes will be read in the
qmi_message_tlv_read_fixed_size_string() call, so ensure the target
array is completely cleared in case we read less than expected.
E.g. for a 2 digit MNC field reported in the LTE System Info TLV,
we would find a 3 byte array containing the last byte as 0xFF. In this
case, the 3rd byte won't be set in the target array as it wouldn't be
valid UTF-8.
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/97
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Client object may be untracked while processing a message (e.g. if
forwarding the response back to the remote client fails), and so the
tracked reference may end up disposed.
If that happens, any attempt to use the client object would end up
reading already freed memory, and it would segfault, (e.g. in the
`while (client->buffer->len > 0)` check just after having run
`process_message()` in `parse_request()`.
Avoid this by ensuring a valid Client reference is kept around during
all this processing.
Thread 0(id: 3232) CRASHED [ SIGSEGV /0x00000000@0x0000000000000004 ]
0x00000000e94d8cdc (libqmi-glib.so.5 - qmi-proxy.c: 942) connection_readable_cb
0x00000000e90aa593 (libgio-2.0.so.0 - gsocket.c: 4008) socket_source_dispatch
0x00000000e934de5b (libglib-2.0.so.0 - gmain.c: 3325) g_main_context_dispatch
0x00000000e934e083 (libglib-2.0.so.0 - gmain.c: 4119) g_main_context_iterate
0x00000000e934e2b3 (libglib-2.0.so.0 - gmain.c: 4317) g_main_loop_run
0x00000000071ebe93 (qmi-proxy - qmi-proxy.c: 230) main
0x00000000e91d1a9b (libc.so.6 - libc-start.c: 314) __libc_start_main
0x00000000071ebcbb (qmi-proxy) _start
0x00000000071ec10b (qmi-proxy - elf-init.c: 90) __libc_csu_init
0x00000000ff9eff8a
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/72
|
|
|
|
| |
Hide the value field exclusively for those TLVs that are marked as or contain personal info.
|
| |
|
| |
|
| |
|