Compare commits

...

No commits in common. "c8s" and "c9-beta" have entirely different histories.
c8s ... c9-beta

2 changed files with 188 additions and 13 deletions

View File

@ -0,0 +1,141 @@
diff -up librtas-2.0.2/librtasevent_src/get_rtas_event.c.me librtas-2.0.2/librtasevent_src/get_rtas_event.c
--- librtas-2.0.2/librtasevent_src/get_rtas_event.c.me 2021-03-25 11:26:19.754142871 +0100
+++ librtas-2.0.2/librtasevent_src/get_rtas_event.c 2021-03-25 11:29:24.322686995 +0100
@@ -29,6 +29,10 @@
#include "librtasevent.h"
#include "rtas_event.h"
+#if __GNUC__ >= 9
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
+#endif
+
/**
* rtas_copy
* @brief front end for common memcpy calls
diff -up librtas-2.0.2/librtasevent_src/rtas_post.c.me librtas-2.0.2/librtasevent_src/rtas_post.c
--- librtas-2.0.2/librtasevent_src/rtas_post.c.me 2021-03-25 11:52:35.489805806 +0100
+++ librtas-2.0.2/librtasevent_src/rtas_post.c 2021-03-25 12:11:38.817324108 +0100
@@ -139,6 +139,7 @@ print_re_post_scn(struct scn_header *shd
len += rtas_print("Self-test error in firmware extended "
"diagnostics.\n");
+ /* coverity[invalid_type : FALSE] */
len += rtas_print("POST Error Code: %x\n", post->err_code);
len += rtas_print("Firmware Revision Code: %x\n", post->firmware_rev);
diff -up librtas-2.0.2/librtasevent_src/rtas_v6_misc.c.me librtas-2.0.2/librtasevent_src/rtas_v6_misc.c
--- librtas-2.0.2/librtasevent_src/rtas_v6_misc.c.me 2021-03-25 11:29:57.445143562 +0100
+++ librtas-2.0.2/librtasevent_src/rtas_v6_misc.c 2021-03-25 11:30:05.924260442 +0100
@@ -28,6 +28,10 @@
#include "librtasevent.h"
#include "rtas_event.h"
+#if __GNUC__ >= 9
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
+#endif
+
/**
* months
* @brief array of month strings
diff -up librtas-2.0.2/librtas_src/syscall_calls.c.me librtas-2.0.2/librtas_src/syscall_calls.c
--- librtas-2.0.2/librtas_src/syscall_calls.c.me 2021-03-25 11:34:20.691775299 +0100
+++ librtas-2.0.2/librtas_src/syscall_calls.c 2021-03-25 11:49:03.830951225 +0100
@@ -886,7 +886,7 @@ int rtas_platform_dump(uint64_t dump_tag
uint32_t next_hi, next_lo;
uint32_t bytes_hi, bytes_lo;
uint32_t dump_tag_hi, dump_tag_lo;
- void *kernbuf;
+ void *kernbuf = NULL;
int rc, status;
rc = sanity_check();
@@ -927,6 +927,7 @@ int rtas_platform_dump(uint64_t dump_tag
if (buffer && (rc == 0))
memcpy(buffer, kernbuf, length);
+ /* coverity[uninit_use : FALSE] */
if (kernbuf)
(void)rtas_free_rmo_buffer(kernbuf, kernbuf_pa, length);
diff -up librtas-2.0.2/librtas_src/syscall_rmo.c.me librtas-2.0.2/librtas_src/syscall_rmo.c
--- librtas-2.0.2/librtas_src/syscall_rmo.c.me 2021-03-25 11:49:26.704266218 +0100
+++ librtas-2.0.2/librtas_src/syscall_rmo.c 2021-03-25 12:47:12.108229574 +0100
@@ -247,6 +247,7 @@ static int get_phys_region(size_t size,
if (bits == 0ll) {
if (acquire_file_lock(i, n_pages) == 0) {
set_bits(i, i + n_pages - 1,
+ /* coverity[overflow_before_widen : FALSE] */
(1 << n_pages) - 1,
&wa_config.pages_map);
addr = kregion->addr + (i * PAGE_SIZE);
@@ -289,6 +290,7 @@ static int release_phys_region(uint32_t
bits = get_bits(first_page, first_page + n_pages - 1,
wa_config.pages_map);
+ /* coverity[overflow_before_widen : FALSE] */
if (bits != ((1 << n_pages) - 1)) {
dbg("Invalid region [0x%x, 0x%zx]\n", phys_addr, size);
return RTAS_IO_ASSERT;
diff --git a/librtasevent_src/rtas_srcfru.c b/librtasevent_src/rtas_srcfru.c
index 23c8584..a2eac9a 100644
--- a/librtasevent_src/rtas_srcfru.c
+++ b/librtasevent_src/rtas_srcfru.c
@@ -74,13 +74,13 @@ parse_fru_id_scn(struct rtas_event *re)
re->offset += RE_FRU_HDR_SZ;
if (fruid_has_part_no(fru_id)) {
- strcpy(fru_id->part_no, RE_EVENT_OFFSET(re));
- re->offset += 8;
+ rtas_copy(fru_id->part_no, re, 7);
+ fru_id->part_no[7] = '\0';
}
if (fruid_has_proc_id(fru_id)) {
- strcpy(fru_id->procedure_id, RE_EVENT_OFFSET(re));
- re->offset += 8;
+ rtas_copy(fru_id->procedure_id, re, 7);
+ fru_id->procedure_id[7] = '\0';
}
if (fruid_has_ccin(fru_id)) {
@@ -238,9 +238,10 @@ parse_src_scn(struct rtas_event *re)
add_re_scn(re, src, re_scn_id(&src_raw->v6hdr));
- if (!src_subscns_included(src))
+ if (!src_subscns_included(src)) {
+ free (src_raw);
return 0;
-
+ }
rtas_copy( (char *) src_raw + RE_SRC_SCN_SZ + 4, re, RE_SRC_SUBSCN_SZ);
src->subscn_id = src_raw->subscn_id;
@@ -251,6 +252,7 @@ parse_src_scn(struct rtas_event *re)
total_len = RE_SRC_SUBSCN_SZ;
last_fru = NULL;
+ free(src_raw);
do {
uint32_t fru_len, fru_end;
@@ -288,6 +290,7 @@ parse_src_scn(struct rtas_event *re)
if (cur_fruhdr == NULL) {
cleanup_rtas_event(re);
+ free(fru);
return -1;
}
diff --git a/librtasevent_src/rtas_vend.c b/librtasevent_src/rtas_vend.c
index 6fa717e..2814726 100644
--- a/librtasevent_src/rtas_vend.c
+++ b/librtasevent_src/rtas_vend.c
@@ -116,6 +116,7 @@ parse_vend_errlog_scn(struct rtas_event *re)
ve->vendor_data = malloc(ve->vendor_data_sz);
if (ve->vendor_data == NULL) {
errno = ENOMEM;
+ free(ve);
return -1;
}

View File

@ -1,18 +1,18 @@
Summary: Libraries to provide access to RTAS calls and RTAS events
Name: librtas
Version: 2.0.2
Release: 1%{?dist}
Release: 14%{?dist}
URL: https://github.com/nfont/librtas
License: LGPL
Group: System Environment/Libraries
License: LGPLv2+
Source0: https://github.com/nfont/librtas/archive/v%{version}.tar.gz
BuildRequires: autoconf
BuildRequires: libtool
BuildRequires: make
# Fedora specific patch
Patch0: %{name}-2.0.1-libversion.patch
Patch0: librtas-2.0.1-libversion.patch
Patch1: librtas-2.0.2-coverity.patch
ExclusiveArch: %{power64}
@ -28,7 +28,6 @@ the contents of RTAS events.
%package devel
Summary: C header files for development with librtas
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
@ -36,17 +35,12 @@ The librtas-devel packages contains the header files necessary for
developing programs using librtas.
%prep
%setup -q -n %{name}-%{version}
%patch0 -p1 -b .ln
%autosetup -p1
%build
./autogen.sh
# disable "-Werror=format-security" checking gcc option until we fix
# these errors in our code.
%configure --disable-silent-rules --disable-static
CFLAGS="%{optflags} -fPIC -DPIC -I."
CFLAGS=`echo $CFLAGS | sed 's/-Werror=format-security//'`
%make_build CFLAGS="$CFLAGS"
%make_build
%install
%make_install
@ -74,6 +68,46 @@ rm -f %{buildroot}/%{_docdir}/librtas/*
%{_includedir}/librtasevent_v6.h
%changelog
* Wed Feb 09 2022 Than Ngo <than@redhat.com> - 2.0.2-14
- Resolves: #2039517, add librtas-devel to compose
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.0.2-13
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon May 10 2021 Than Ngo <than@redhat.com> - 2.0.2-12
- Resolves: #1958942, fix license tag
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.0.2-11
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Fri Mar 26 2021 Than Ngo <than@redhat.com> - 2.0.2-10
- clean up librtas by using rtas_copy
* Thu Mar 25 2021 Than Ngo <than@redhat.com> - 2.0.2-9
- Undo ExclusiveArch
* Thu Mar 25 2021 Than Ngo <than@redhat.com> - 2.0.2-8
- Resolves: #1938786, coverity issues
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jul 06 2018 Sinny Kumari <sinnykumari@fedoraproject.org> - 2.0.2-1
- Rebase to 2.0.2