Fix coverity issues
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
This commit is contained in:
parent
b5d6ac68ff
commit
943432a243
53
0001-import-Don-t-call-unlink-NULL.patch
Normal file
53
0001-import-Don-t-call-unlink-NULL.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From ab1b0bf0f3611b556627f42e5accb1063acd91cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
|
||||||
|
Date: Mon, 20 May 2019 14:19:01 +0200
|
||||||
|
Subject: [PATCH 1/3] import: Don't call unlink(NULL)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Although `man 3 unlink` doesn't mention what should be the unlink()
|
||||||
|
behaviour when NULL is passed to it, both coverity and clang complains
|
||||||
|
about that.
|
||||||
|
|
||||||
|
Error: FORWARD_NULL (CWE-476):
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-import.c:157: var_compare_op:
|
||||||
|
Comparing "*source_file" to null implies that "*source_file" might be
|
||||||
|
null.
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-import.c:181: var_deref_model:
|
||||||
|
Passing null pointer "*source_file" to "unlink", which dereferences it.
|
||||||
|
# 179| g_error_free(err);
|
||||||
|
# 180| if (ret != 0)
|
||||||
|
# 181|-> unlink(*source_file);
|
||||||
|
# 182|
|
||||||
|
# 183| return ret;
|
||||||
|
|
||||||
|
Error: CLANG_WARNING:
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-import.c:181:9: warning: Null
|
||||||
|
pointer passed as an argument to a 'nonnull' parameter
|
||||||
|
# unlink(*source_file);
|
||||||
|
# ^
|
||||||
|
|
||||||
|
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||||
|
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
(cherry picked from commit 07be7309d830419c27ec65c76905d1e23219f480)
|
||||||
|
---
|
||||||
|
tools/osinfo-db-import.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/osinfo-db-import.c b/tools/osinfo-db-import.c
|
||||||
|
index 920f71b..11e68ae 100644
|
||||||
|
--- a/tools/osinfo-db-import.c
|
||||||
|
+++ b/tools/osinfo-db-import.c
|
||||||
|
@@ -177,7 +177,7 @@ osinfo_db_import_download_file(GFile *file,
|
||||||
|
g_object_unref(out);
|
||||||
|
if (err != NULL)
|
||||||
|
g_error_free(err);
|
||||||
|
- if (ret != 0)
|
||||||
|
+ if (ret != 0 && *source_file != NULL)
|
||||||
|
unlink(*source_file);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
62
0002-export-Remove-unused-variable.patch
Normal file
62
0002-export-Remove-unused-variable.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
From 125f04cb6d742fb13f691cfbff54437014a399bd Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
|
||||||
|
Date: Mon, 20 May 2019 14:25:34 +0200
|
||||||
|
Subject: [PATCH 2/3] export: Remove unused variable
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
err is declared, set to NULL, but never used in
|
||||||
|
osinfo_db_export_create().
|
||||||
|
|
||||||
|
Error: DEADCODE (CWE-561):
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-export.c:410: assignment:
|
||||||
|
Assigning: "err" = "NULL".
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-export.c:448: null: At condition
|
||||||
|
"err", the value of "err" must be "NULL".
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-export.c:448: dead_error_condition:
|
||||||
|
The condition "err" cannot be true.
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-export.c:449: dead_error_line:
|
||||||
|
Execution cannot reach this statement: "g_error_free(err);".
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-export.c:449: effectively_constant:
|
||||||
|
Local variable "err" is assigned only once, to a constant value, making
|
||||||
|
it effectively constant throughout its scope. If this is not the intent,
|
||||||
|
examine the logic to see if there is a missing assigment that would make
|
||||||
|
"err" not remain constant.
|
||||||
|
# 447| archive_write_free(arc);
|
||||||
|
# 448| if (err)
|
||||||
|
# 449|-> g_error_free(err);
|
||||||
|
# 450| return ret;
|
||||||
|
# 451| }
|
||||||
|
|
||||||
|
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||||
|
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
(cherry picked from commit 2d747c637c78c000002f97880436d94cc08a6b5c)
|
||||||
|
---
|
||||||
|
tools/osinfo-db-export.c | 3 ---
|
||||||
|
1 file changed, 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/osinfo-db-export.c b/tools/osinfo-db-export.c
|
||||||
|
index 3137e1d..eef6688 100644
|
||||||
|
--- a/tools/osinfo-db-export.c
|
||||||
|
+++ b/tools/osinfo-db-export.c
|
||||||
|
@@ -407,7 +407,6 @@ static int osinfo_db_export_create(const gchar *prefix,
|
||||||
|
struct archive *arc;
|
||||||
|
int ret = -1;
|
||||||
|
int r;
|
||||||
|
- GError *err = NULL;
|
||||||
|
|
||||||
|
arc = archive_write_new();
|
||||||
|
|
||||||
|
@@ -445,8 +444,6 @@ static int osinfo_db_export_create(const gchar *prefix,
|
||||||
|
ret = 0;
|
||||||
|
cleanup:
|
||||||
|
archive_write_free(arc);
|
||||||
|
- if (err)
|
||||||
|
- g_error_free(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
36
0003-validate-Don-t-leak-files.patch
Normal file
36
0003-validate-Don-t-leak-files.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From f4f65ea3e895eaab87af049300d2d69ba3d51c9f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
|
||||||
|
Date: Mon, 20 May 2019 14:28:22 +0200
|
||||||
|
Subject: [PATCH 3/3] validate: Don't leak "files"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Error: CLANG_WARNING:
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-validate.c:319:9: warning:
|
||||||
|
Potential leak of memory pointed to by 'files'
|
||||||
|
# g_printerr("%s\n", error->message);
|
||||||
|
# ^
|
||||||
|
|
||||||
|
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||||
|
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
(cherry picked from commit 7ac63b928df3f445ede81cac0ade0ed6d810c3cb)
|
||||||
|
---
|
||||||
|
tools/osinfo-db-validate.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/tools/osinfo-db-validate.c b/tools/osinfo-db-validate.c
|
||||||
|
index 0e28e1c..7fd87d2 100644
|
||||||
|
--- a/tools/osinfo-db-validate.c
|
||||||
|
+++ b/tools/osinfo-db-validate.c
|
||||||
|
@@ -327,6 +327,7 @@ gint main(gint argc, gchar **argv)
|
||||||
|
g_object_unref(schema);
|
||||||
|
if (dir)
|
||||||
|
g_object_unref(dir);
|
||||||
|
+ g_free(files);
|
||||||
|
g_clear_error(&error);
|
||||||
|
g_option_context_free(context);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
43
0004-import-Don-t-call-unlink-NULL-in-_import_extract.patch
Normal file
43
0004-import-Don-t-call-unlink-NULL-in-_import_extract.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From 66cdd50832a99e175079bfb36a321fd9499c6f0e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
|
||||||
|
Date: Wed, 22 May 2019 18:06:28 +0200
|
||||||
|
Subject: [PATCH] import: Don't call unlink(NULL) in _import_extract()
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Similarly to the issue fixed by ae52b0fbc, here we're also potentially
|
||||||
|
passing NULL to unlink().
|
||||||
|
|
||||||
|
Error: FORWARD_NULL (CWE-476):
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-import.c:332: var_compare_op: Comparing "source_file" to null implies that "source_file" might be null.
|
||||||
|
osinfo-db-tools-1.5.0/tools/osinfo-db-import.c:374: var_deref_model: Passing null pointer "source_file" to "unlink", which dereferences it.
|
||||||
|
# 372| g_object_unref(file);
|
||||||
|
# 373| if (!file_is_native)
|
||||||
|
# 374|-> unlink(source_file);
|
||||||
|
# 375| g_free(source_file);
|
||||||
|
# 376| return ret;
|
||||||
|
|
||||||
|
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
|
||||||
|
Reviewed-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
(cherry picked from commit 69eb33ad4207c76c0738bfa00b40c97892bab0ad)
|
||||||
|
---
|
||||||
|
tools/osinfo-db-import.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/osinfo-db-import.c b/tools/osinfo-db-import.c
|
||||||
|
index 11e68ae..675961d 100644
|
||||||
|
--- a/tools/osinfo-db-import.c
|
||||||
|
+++ b/tools/osinfo-db-import.c
|
||||||
|
@@ -370,7 +370,7 @@ static int osinfo_db_import_extract(GFile *target,
|
||||||
|
archive_read_free(arc);
|
||||||
|
if (file)
|
||||||
|
g_object_unref(file);
|
||||||
|
- if (!file_is_native)
|
||||||
|
+ if (!file_is_native && source_file != NULL)
|
||||||
|
unlink(source_file);
|
||||||
|
g_free(source_file);
|
||||||
|
return ret;
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -3,12 +3,20 @@
|
|||||||
Summary: Tools for managing the osinfo database
|
Summary: Tools for managing the osinfo database
|
||||||
Name: osinfo-db-tools
|
Name: osinfo-db-tools
|
||||||
Version: 1.5.0
|
Version: 1.5.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Source: https://releases.pagure.io/libosinfo/%{name}-%{version}.tar.gz
|
Source: https://releases.pagure.io/libosinfo/%{name}-%{version}.tar.gz
|
||||||
URL: http://libosinfo.org/
|
URL: http://libosinfo.org/
|
||||||
|
|
||||||
|
### Patches ###
|
||||||
|
Patch0001: 0001-import-Don-t-call-unlink-NULL.patch
|
||||||
|
Patch0002: 0002-export-Remove-unused-variable.patch
|
||||||
|
Patch0003: 0003-validate-Don-t-leak-files.patch
|
||||||
|
Patch0004: 0004-import-Don-t-call-unlink-NULL-in-_import_extract.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gettext-devel
|
BuildRequires: gettext-devel
|
||||||
|
BuildRequires: git
|
||||||
BuildRequires: glib2-devel
|
BuildRequires: glib2-devel
|
||||||
BuildRequires: libxml2-devel >= 2.6.0
|
BuildRequires: libxml2-devel >= 2.6.0
|
||||||
BuildRequires: libxslt-devel >= 1.0.0
|
BuildRequires: libxslt-devel >= 1.0.0
|
||||||
@ -25,7 +33,7 @@ This package provides tools for managing the osinfo database of
|
|||||||
information about operating systems for use with virtualization
|
information about operating systems for use with virtualization
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%autosetup -S git
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@ -56,6 +64,9 @@ fi
|
|||||||
%{_mandir}/man1/osinfo-db-validate.1*
|
%{_mandir}/man1/osinfo-db-validate.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 03 2019 Fabiano Fidêncio <fidencio@redhat.com> -1.5.0-2
|
||||||
|
- Fix coverity issues
|
||||||
|
|
||||||
* Thu May 09 2019 Fabiano Fidêncio <fidencio@redhat.com> - 1.5.0-1
|
* Thu May 09 2019 Fabiano Fidêncio <fidencio@redhat.com> - 1.5.0-1
|
||||||
- Update to 1.5.0 release
|
- Update to 1.5.0 release
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user