guibuilder_pel7x64builder0
6 years ago
6 changed files with 343 additions and 0 deletions
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
diff --git a/libgcab/cabinet.c b/libgcab/cabinet.c |
||||
index a675d1b..9847f1c 100644 |
||||
--- a/libgcab/cabinet.c |
||||
+++ b/libgcab/cabinet.c |
||||
@@ -460,18 +460,38 @@ cdata_read (cdata_t *cd, u1 res_data, gint comptype, |
||||
gboolean success = FALSE; |
||||
int ret, zret = Z_OK; |
||||
gint compression = comptype & GCAB_COMPRESSION_MASK; |
||||
- guint8 *buf = compression == GCAB_COMPRESSION_NONE ? cd->out : cd->in; |
||||
+ gsize buf_sz; |
||||
+ guint8 *buf = NULL; |
||||
CHECKSUM datacsum; |
||||
|
||||
- if (compression > GCAB_COMPRESSION_MSZIP && |
||||
- compression != GCAB_COMPRESSION_LZX) { |
||||
+ /* decompress directly into ->out for no decompression */ |
||||
+ switch (compression) { |
||||
+ case GCAB_COMPRESSION_NONE: |
||||
+ buf = cd->out; |
||||
+ buf_sz = sizeof(cd->out); |
||||
+ break; |
||||
+ case GCAB_COMPRESSION_MSZIP: |
||||
+ case GCAB_COMPRESSION_LZX: |
||||
+ buf = cd->in; |
||||
+ buf_sz = sizeof(cd->in); |
||||
+ break; |
||||
+ default: |
||||
g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED, |
||||
_("unsupported compression method %d"), compression); |
||||
- return FALSE; |
||||
+ break; |
||||
} |
||||
+ if (buf == NULL) |
||||
+ return FALSE; |
||||
|
||||
R4 (cd->checksum); |
||||
R2 (cd->ncbytes); |
||||
+ if (cd->ncbytes > buf_sz) { |
||||
+ g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED, |
||||
+ "tried to decompress %" G_GUINT16_FORMAT " bytes " |
||||
+ "into buffer of size %" G_GSIZE_FORMAT, |
||||
+ cd->ncbytes, buf_sz); |
||||
+ return FALSE; |
||||
+ } |
||||
R2 (cd->nubytes); |
||||
cd->reserved = g_malloc (res_data); |
||||
RN (cd->reserved, res_data); |
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
From 411ce03bdeddd7cbf69cb7c68845c99908657bf9 Mon Sep 17 00:00:00 2001 |
||||
From: Richard Hughes <richard@hughsie.com> |
||||
Date: Wed, 1 Mar 2017 16:39:27 +0000 |
||||
Subject: [PATCH 1/4] Fix a few 'Dereference of null pointer' warnings |
||||
|
||||
--- |
||||
libgcab/cabinet.c | 2 +- |
||||
libgcab/gcab-cabinet.c | 2 +- |
||||
libgcab/gcab-folder.c | 2 +- |
||||
3 files changed, 3 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/libgcab/cabinet.c b/libgcab/cabinet.c |
||||
index 1fa2af8..4df9024 100644 |
||||
--- a/libgcab/cabinet.c |
||||
+++ b/libgcab/cabinet.c |
||||
@@ -562,7 +562,7 @@ end: |
||||
g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED, |
||||
"zlib failed: %s", zError (zret)); |
||||
|
||||
- if (!*error && !success) |
||||
+ if (error != NULL && *error == NULL && !success) |
||||
g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED, |
||||
"Invalid cabinet chunk"); |
||||
|
||||
diff --git a/libgcab/gcab-cabinet.c b/libgcab/gcab-cabinet.c |
||||
index e81b052..a6cc4f0 100644 |
||||
--- a/libgcab/gcab-cabinet.c |
||||
+++ b/libgcab/gcab-cabinet.c |
||||
@@ -257,7 +257,7 @@ gcab_cabinet_write (GCabCabinet *self, |
||||
|
||||
g_clear_object (&in); |
||||
in = G_INPUT_STREAM (g_file_read (file->file, cancellable, error)); |
||||
- if (*error) |
||||
+ if (in == NULL) |
||||
goto end; |
||||
|
||||
while ((len = g_input_stream_read (in, |
||||
diff --git a/libgcab/gcab-folder.c b/libgcab/gcab-folder.c |
||||
index e724097..dc33b6a 100644 |
||||
--- a/libgcab/gcab-folder.c |
||||
+++ b/libgcab/gcab-folder.c |
||||
@@ -240,7 +240,7 @@ gcab_folder_add_file (GCabFolder *self, GCabFile *file, |
||||
g_return_val_if_fail (G_IS_FILE (gfile), FALSE); |
||||
|
||||
GFileInfo *info = g_file_query_info (gfile, FILE_ATTRS, 0, NULL, error); |
||||
- if (*error) |
||||
+ if (info == NULL) |
||||
return FALSE; |
||||
|
||||
success = add_file_info (self, file, info, |
||||
-- |
||||
2.9.3 |
||||
|
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
From 4d2c600f54d2f00d1604aaeb20e2285e9ab0cad9 Mon Sep 17 00:00:00 2001 |
||||
From: Richard Hughes <richard@hughsie.com> |
||||
Date: Wed, 1 Mar 2017 16:40:05 +0000 |
||||
Subject: [PATCH 2/4] Always check the return value when writing to the stream |
||||
|
||||
--- |
||||
libgcab/cabinet.c | 7 ++++--- |
||||
1 file changed, 4 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/libgcab/cabinet.c b/libgcab/cabinet.c |
||||
index 4df9024..a675d1b 100644 |
||||
--- a/libgcab/cabinet.c |
||||
+++ b/libgcab/cabinet.c |
||||
@@ -190,9 +190,10 @@ cheader_write (cheader_t *ch, GDataOutputStream *out, |
||||
return FALSE; |
||||
|
||||
if (ch->flags & CABINET_HEADER_RESERVE) { |
||||
- W2 (ch->res_header); |
||||
- W1 (ch->res_folder); |
||||
- W1 (ch->res_data); |
||||
+ if (!W2 (ch->res_header) || |
||||
+ !W1 (ch->res_folder) || |
||||
+ !W1 (ch->res_data)) |
||||
+ return FALSE; |
||||
if (g_output_stream_write (stream, ch->reserved, ch->res_header, |
||||
cancellable, error) == -1) |
||||
return FALSE; |
||||
-- |
||||
2.9.3 |
||||
|
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
From 42c5e4f6d227b0dcee7e01702e9338f15dfa1568 Mon Sep 17 00:00:00 2001 |
||||
From: Richard Hughes <richard@hughsie.com> |
||||
Date: Wed, 1 Mar 2017 17:02:05 +0000 |
||||
Subject: [PATCH 3/4] Fix a theoretical crash when building the table entries |
||||
|
||||
I can't actually see a way to construct the ZIPstate with no tables, but this |
||||
at least this stops Coverity complaining. |
||||
--- |
||||
libgcab/decomp.c | 4 ++++ |
||||
1 file changed, 4 insertions(+) |
||||
|
||||
diff --git a/libgcab/decomp.c b/libgcab/decomp.c |
||||
index cce368e..52445e8 100644 |
||||
--- a/libgcab/decomp.c |
||||
+++ b/libgcab/decomp.c |
||||
@@ -248,6 +248,10 @@ struct Ziphuft **t, cab_LONG *m, fdi_decomp_state *decomp_state) |
||||
i ^= j; |
||||
i ^= j; |
||||
|
||||
+ /* no tables */ |
||||
+ if (h < 0) |
||||
+ return 2; /* corrupt */ |
||||
+ |
||||
/* backup over finished tables */ |
||||
while ((i & ((1 << w) - 1)) != ZIP(x)[h]) |
||||
w -= l[--h]; /* don't need to update q */ |
||||
-- |
||||
2.9.3 |
||||
|
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
From 42a8b8af21af24bb35548bcd2499c792d1a8c1a3 Mon Sep 17 00:00:00 2001 |
||||
From: Richard Hughes <richard@hughsie.com> |
||||
Date: Wed, 1 Mar 2017 17:15:10 +0000 |
||||
Subject: [PATCH 4/4] Fix buffer overrun when generating Huffman codes |
||||
|
||||
--- |
||||
libgcab/decomp.c | 4 +++- |
||||
1 file changed, 3 insertions(+), 1 deletion(-) |
||||
|
||||
diff --git a/libgcab/decomp.c b/libgcab/decomp.c |
||||
index 52445e8..3ee8f9b 100644 |
||||
--- a/libgcab/decomp.c |
||||
+++ b/libgcab/decomp.c |
||||
@@ -190,7 +190,9 @@ struct Ziphuft **t, cab_LONG *m, fdi_decomp_state *decomp_state) |
||||
xp = ZIP(c) + k; |
||||
while (++j < z) /* try smaller tables up to z bits */ |
||||
{ |
||||
- if ((f <<= 1) <= *++xp) |
||||
+ if (*++xp > ZIPBMAX) |
||||
+ return 2; /* corrupt */ |
||||
+ if ((f <<= 1) <= *xp) |
||||
break; /* enough codes to use up j bits */ |
||||
f -= *xp; /* else deduct codes from patterns */ |
||||
} |
||||
-- |
||||
2.9.3 |
||||
|
@ -0,0 +1,157 @@
@@ -0,0 +1,157 @@
|
||||
Name: gcab |
||||
Version: 0.7 |
||||
Release: 4%{?dist} |
||||
Summary: Cabinet file library and tool |
||||
|
||||
License: LGPLv2+ |
||||
#VCS: git:git://git.gnome.org/gcab |
||||
URL: http://ftp.gnome.org/pub/GNOME/sources/gcab |
||||
Source0: http://ftp.gnome.org/pub/GNOME/sources/gcab/%{version}/%{name}-%{version}.tar.xz |
||||
|
||||
# Already upstream |
||||
Patch1: 0001-Fix-a-few-Dereference-of-null-pointer-warnings.patch |
||||
Patch2: 0002-Always-check-the-return-value-when-writing-to-the-st.patch |
||||
Patch3: 0003-Fix-a-theoretical-crash-when-building-the-table-entr.patch |
||||
Patch4: 0004-Fix-buffer-overrun-when-generating-Huffman-codes.patch |
||||
Patch5: 0001-Do-not-crash-when-ncbytes-is-larger-than-the-buffer-.patch |
||||
|
||||
BuildRequires: intltool |
||||
BuildRequires: vala-tools |
||||
BuildRequires: glib2-devel |
||||
BuildRequires: gobject-introspection-devel |
||||
BuildRequires: zlib-devel |
||||
|
||||
Requires: libgcab1%{?_isa} = %{version}-%{release} |
||||
|
||||
%description |
||||
gcab is a tool to manipulate Cabinet archive. |
||||
|
||||
%package -n libgcab1 |
||||
Summary: Library to create Cabinet archives |
||||
|
||||
%description -n libgcab1 |
||||
libgcab is a library to manipulate Cabinet archive using GIO/GObject. |
||||
|
||||
%package -n libgcab1-devel |
||||
Summary: Development files to create Cabinet archives |
||||
Requires: libgcab1%{?_isa} = %{version}-%{release} |
||||
Requires: glib2-devel |
||||
Requires: pkgconfig |
||||
|
||||
%description -n libgcab1-devel |
||||
libgcab is a library to manipulate Cabinet archive. |
||||
|
||||
Libraries, includes, etc. to compile with the gcab library. |
||||
|
||||
%prep |
||||
%setup -q |
||||
%patch1 -p1 -b .coverity1 |
||||
%patch2 -p1 -b .coverity2 |
||||
%patch3 -p1 -b .coverity3 |
||||
%patch4 -p1 -b .coverity4 |
||||
%patch5 -p1 -b .cve20185345 |
||||
|
||||
%build |
||||
%configure --disable-silent-rules --disable-static |
||||
make %{?_smp_mflags} |
||||
|
||||
%install |
||||
rm -rf %{buildroot} |
||||
make DESTDIR=%{buildroot} install |
||||
|
||||
rm -f %{buildroot}%{_libdir}/*.a |
||||
rm -f %{buildroot}%{_libdir}/*.la |
||||
|
||||
%find_lang %{name} |
||||
|
||||
%post -n libgcab1 -p /sbin/ldconfig |
||||
%postun -n libgcab1 -p /sbin/ldconfig |
||||
|
||||
%files |
||||
%doc COPYING NEWS |
||||
%{_bindir}/gcab |
||||
%{_mandir}/man1/gcab.1* |
||||
|
||||
%files -n libgcab1 -f %{name}.lang |
||||
%doc COPYING NEWS |
||||
%{_libdir}/girepository-1.0/GCab-1.0.typelib |
||||
%{_libdir}/libgcab-1.0.so.* |
||||
|
||||
%files -n libgcab1-devel |
||||
%{_datadir}/gir-1.0/GCab-1.0.gir |
||||
%{_datadir}/gtk-doc/html/gcab/* |
||||
%{_datadir}/vala/vapi/libgcab-1.0.vapi |
||||
%{_includedir}/libgcab-1.0/* |
||||
%{_libdir}/libgcab-1.0.so |
||||
%{_libdir}/pkgconfig/libgcab-1.0.pc |
||||
|
||||
%changelog |
||||
* Wed Feb 14 2018 Richard Hughes <rhughes@redhat.com> - 0.7-4 |
||||
- Fixes the security issue known as CVE-2018-5345 |
||||
- Resolves: #1533174 |
||||
|
||||
* Mon Mar 06 2017 Richard Hughes <rhughes@redhat.com> - 0.7-3 |
||||
- Fix some more bugs spotted by coverity and RPMDiff. |
||||
- Resolves: #1388476 |
||||
|
||||
* Thu Mar 02 2017 Richard Hughes <rhughes@redhat.com> - 0.7-2 |
||||
- Fix some bugs spotted by coverity and RPMDiff. |
||||
- Resolves: #1388476 |
||||
|
||||
* Wed Mar 09 2016 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.7-1 |
||||
- 0.7 release update. |
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-6 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||
|
||||
* Tue Dec 01 2015 Fabiano Fidêncio <fidencio@redhat.com> - 0.6-5 |
||||
- Bump NVR and rebuild due to a mistakenly deleted build |
||||
|
||||
* Thu Jul 30 2015 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.6-4 |
||||
- Fix wrong file modification date when creating cab. |
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild |
||||
|
||||
* Mon Mar 23 2015 Kalev Lember <kalevlember@gmail.com> - 0.6-2 |
||||
- Pull in the base library package when installing -devel |
||||
|
||||
* Tue Mar 17 2015 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.6-1 |
||||
- Update to upstream release v0.6 |
||||
|
||||
* Tue Jan 06 2015 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.4-7 |
||||
- Avoid directory traversal CVE-2015-0552. rhbz#1179126 |
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-6 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild |
||||
|
||||
* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 0.4-5 |
||||
- Rebuilt for gobject-introspection 1.41.4 |
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild |
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild |
||||
|
||||
* Tue Feb 12 2013 Simone Caronni <negativo17@gmail.com> - 0.4-2 |
||||
- Removed rpm 4.5 macros/tags, it cannot be built with the vala in el5/el6. |
||||
- Removed redundant requirement on libgcab1%%{_isa}, added automatically by rpm. |
||||
|
||||
* Fri Feb 8 2013 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.4-1 |
||||
- Update to upstream v0.4. |
||||
|
||||
* Fri Feb 8 2013 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.3-3 |
||||
- Align more fields. |
||||
- Use double percentage in comment. |
||||
- Include COPYING file in gcab package too. |
||||
|
||||
* Fri Feb 8 2013 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.3-2 |
||||
- Untabify. |
||||
- Use %%{buildroot} consitantly. |
||||
- Do not use -1.0 in package names. |
||||
- Add more tags based on the el5 spec template. |
||||
- Re-add --enable-fast-install trick, to make gcab relink. |
||||
|
||||
* Sun Jan 26 2013 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.3-1 |
||||
- Initial package (rhbz#895757) |
Loading…
Reference in new issue