Accepting request 292258 from home:AndreasSchwab:f

- checksum.patch: fix checksum computation (bgo#746580)

OBS-URL: https://build.opensuse.org/request/show/292258
OBS-URL: https://build.opensuse.org/package/show/GNOME:Apps/gcab?expand=0&rev=7
This commit is contained in:
Dominique Leuenberger 2015-03-23 20:44:05 +00:00 committed by Git OBS Bridge
parent 38c80e8b16
commit 33fbe0ea60
3 changed files with 39 additions and 0 deletions

32
checksum.patch Normal file
View File

@ -0,0 +1,32 @@
Index: gcab-0.5/libgcab/cabinet.c
===================================================================
--- gcab-0.5.orig/libgcab/cabinet.c
+++ gcab-0.5/libgcab/cabinet.c
@@ -403,7 +403,12 @@ cdata_write (cdata_t *cd, GDataOutputStr
return FALSE;
CHECKSUM datacsum = compute_checksum(cd->in, cd->ncbytes, 0);
- cd->checksum = compute_checksum ((guint8*)&cd->ncbytes, 4, datacsum);
+ guint8 tmp[4];
+ tmp[0] = cd->ncbytes & 0xff;
+ tmp[1] = (cd->ncbytes >> 8) & 0xff;
+ tmp[2] = cd->nubytes & 0xff;
+ tmp[3] = (cd->nubytes >> 8) & 0xff;
+ cd->checksum = compute_checksum (tmp, 4, datacsum);
GOutputStream *stream = g_filter_output_stream_get_base_stream (G_FILTER_OUTPUT_STREAM (out));
*bytes_written = 0;
@@ -462,7 +467,12 @@ cdata_read (cdata_t *cd, u1 res_data, gi
RN (buf, cd->ncbytes);
datacsum = compute_checksum(buf, cd->ncbytes, 0);
- g_return_val_if_fail (cd->checksum == compute_checksum ((guint8*)&cd->ncbytes, 4, datacsum), FALSE);
+ guint8 tmp[4];
+ tmp[0] = cd->ncbytes & 0xff;
+ tmp[1] = (cd->ncbytes >> 8) & 0xff;
+ tmp[2] = cd->nubytes & 0xff;
+ tmp[3] = (cd->nubytes >> 8) & 0xff;
+ g_return_val_if_fail (cd->checksum == compute_checksum (tmp, 4, datacsum), FALSE);
if (g_getenv ("GCAB_DEBUG")) {
g_debug ("CDATA");

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Sat Mar 21 16:48:27 UTC 2015 - schwab@linux-m68k.org
- checksum.patch: fix checksum computation (bgo#746580)
-------------------------------------------------------------------
Mon Mar 9 16:34:49 UTC 2015 - zaitor@opensuse.org

View File

@ -24,6 +24,7 @@ License: LGPL-2.1+
Group: Productivity/Archiving/Compression
Url: http://ftp.gnome.org/pub/GNOME/sources/gcab
Source: http://ftp.acc.umu.se/pub/GNOME/sources/gcab/0.5/gcab-0.5.tar.xz
Patch: checksum.patch
BuildRequires: gobject-introspection >= 0.9.4
BuildRequires: intltool >= 0.40.0
BuildRequires: vala >= 0.14
@ -66,6 +67,7 @@ This package provides development files to build code against libgcab
%lang_package
%prep
%setup -q
%patch -p1
%build
%configure \