Add patches for a pair of bugs that make static analysis unhappy

Real bugs, but no security implications. Let's check the boxes and fix
them, to reduce the static analysis tooling noise.

Resolves: https://issues.redhat.com/browse/RHEL-38475
This commit is contained in:
Lubomir Rintel 2024-06-25 10:27:21 +02:00
parent 68dc195d08
commit c41ef2cbb4
3 changed files with 107 additions and 1 deletions

View File

@ -0,0 +1,53 @@
From 87e606a20037b5730aeac6971c6a9a6c2de3cbf8 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 23 May 2024 00:03:53 +0200
Subject: [PATCH 1/2] mbimcli-intel-tools: parse trace command & value in a
more straightforward way
Don't conditionalize setting trace_command and trace_value on split
substrings being non-NULL. It makes a static analysis tool think they
might be used uninitialized. That can-not happen, because the substrings
can in fact never be NULL.
Let's keep the check in form of an assert (perhaps to guard against
a possible glib bug, etc.).
(cherry picked from commit 65d02fc647c42b7c743690c769d4bc2c6f2a69c9)
---
src/mbimcli/mbimcli-intel-tools.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/src/mbimcli/mbimcli-intel-tools.c b/src/mbimcli/mbimcli-intel-tools.c
index 9faab2b..8ab47c7 100644
--- a/src/mbimcli/mbimcli-intel-tools.c
+++ b/src/mbimcli/mbimcli-intel-tools.c
@@ -203,18 +203,16 @@ mbimcli_intel_tools_run (MbimDevice *device,
return;
}
- if (split[0]) {
- if (!mbimcli_read_trace_command_from_string (split[0], &trace_command)) {
- g_printerr ("error: couldn't parse input string, invalid trace command '%s'\n", split[0]);
- return;
- }
+ g_return_if_fail (split[0] && split[1]);
+
+ if (!mbimcli_read_trace_command_from_string (split[0], &trace_command)) {
+ g_printerr ("error: couldn't parse input string, invalid trace command '%s'\n", split[0]);
+ return;
}
- if (split[1]) {
- if (!mbimcli_read_uint_from_string (split[1], &trace_value)) {
- g_printerr ("error: couldn't parse input string, invalid trace value '%s'\n", split[1]);
- return;
- }
+ if (!mbimcli_read_uint_from_string (split[1], &trace_value)) {
+ g_printerr ("error: couldn't parse input string, invalid trace value '%s'\n", split[1]);
+ return;
}
g_debug ("Asynchronously setting trace info...");
--
2.45.2

View File

@ -0,0 +1,45 @@
From 63be2092ffb232fc646d4237e52fd1f0cf99e07f Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Wed, 22 May 2024 17:49:17 +0200
Subject: [PATCH 2/2] mbimcli-intel-thermal-rf: fix a potential mem leak in
query_rfim_ready()
These were autofree'd on function return, but can actually be assigned
new allocations on each inner loop interation. Move them inside the
loop.
(cherry picked from commit 9c42e9d1d6d124907dc17e77a97d2a3023552f1e)
---
src/mbimcli/mbimcli-intel-thermal-rf.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/mbimcli/mbimcli-intel-thermal-rf.c b/src/mbimcli/mbimcli-intel-thermal-rf.c
index 04f477e..901e7aa 100644
--- a/src/mbimcli/mbimcli-intel-thermal-rf.c
+++ b/src/mbimcli/mbimcli-intel-thermal-rf.c
@@ -125,10 +125,6 @@ query_rfim_ready (MbimDevice *device,
g_autoptr(GError) error = NULL;
guint32 element_count;
MbimIntelRfimFrequencyValueArray *rfim_frequency;
- g_autofree gchar *rssi_str = NULL;
- g_autofree gchar *sinr_str = NULL;
- g_autofree gchar *rsrq_str = NULL;
- g_autofree gchar *rsrp_str = NULL;
response = mbim_device_command_finish (device, res, &error);
if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) {
@@ -151,6 +147,11 @@ query_rfim_ready (MbimDevice *device,
element_count);
for (i = 0; i < element_count; i++) {
+ g_autofree gchar *rssi_str = NULL;
+ g_autofree gchar *sinr_str = NULL;
+ g_autofree gchar *rsrq_str = NULL;
+ g_autofree gchar *rsrp_str = NULL;
+
if (rfim_frequency[i]->rssi <= 31)
rssi_str = g_strdup_printf ("%d dBm", -113 + (2 * rfim_frequency[i]->rssi));
else
--
2.45.2

View File

@ -1,11 +1,16 @@
Name: libmbim
Version: 1.30.0
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Support library for the Mobile Broadband Interface Model protocol
License: LGPL-2.1-or-later
URL: https://gitlab.freedesktop.org/mobile-broadband/libmbim/
Source: https://gitlab.freedesktop.org/mobile-broadband/libmbim/-/archive/%{version}/%{name}-%{version}.tar.bz2
# Both of these are picked from upstream mbim-1-30 branch post 1.30.0.
# Will be dropped when we rebase to a later version.
Patch0: 0001-mbimcli-intel-tools-parse-trace-command-value-in-a-m.patch
Patch1: 0002-mbimcli-intel-thermal-rf-fix-a-potential-mem-leak-in.patch
BuildRequires: meson >= 0.53
BuildRequires: gcc
BuildRequires: glib2-devel >= 2.56
@ -92,6 +97,9 @@ cp -a src/mbimcli/mbimcli %{buildroot}%{_datadir}/bash-completion/completions/
%changelog
* Tue Jun 25 2024 Lubomir Rintel <lkundrak@v3.sk> - 1.30.0-5
- Add patches for a pair of bugs that make static analysis unhappy (RHEL-38475)
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.30.0-4
- Bump release for June 2024 mass rebuild