Skip to content
This repository has been archived by the owner on Sep 17, 2023. It is now read-only.

Commit

Permalink
zlib: Add crc patch
Browse files Browse the repository at this point in the history
Summary: Fixes a CPU-dependent issue that breaks Maven builds (Zlib issue: madler/zlib#613)

Test Plan:
- Rebuilt a few revdeps
- Tested to see if build error was still present (I encountered the linked issue) and it wasn't

Reviewers: #triage_team, Girtablulu

Reviewed By: #triage_team, Girtablulu

Subscribers: Girtablulu

Differential Revision: https://dev.getsol.us/D13176
  • Loading branch information
ReillyBrogan authored and Girtablulu committed Apr 27, 2022
1 parent 9872b20 commit bad888f
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 13 deletions.
51 changes: 51 additions & 0 deletions files/correct-incorrect-inputs-crc.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
From ec3df00224d4b396e2ac6586ab5d25f673caa4c2 Mon Sep 17 00:00:00 2001
From: Mark Adler <madler@alumni.caltech.edu>
Date: Wed, 30 Mar 2022 11:14:53 -0700
Subject: [PATCH] Correct incorrect inputs provided to the CRC functions.

The previous releases of zlib were not sensitive to incorrect CRC
inputs with bits set above the low 32. This commit restores that
behavior, so that applications with such bugs will continue to
operate as before.
---
crc32.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/crc32.c b/crc32.c
index a1bdce5c2..451887bc7 100644
--- a/crc32.c
+++ b/crc32.c
@@ -630,7 +630,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
#endif /* DYNAMIC_CRC_TABLE */

/* Pre-condition the CRC */
- crc ^= 0xffffffff;
+ crc = (~crc) & 0xffffffff;

/* Compute the CRC up to a word boundary. */
while (len && ((z_size_t)buf & 7) != 0) {
@@ -749,7 +749,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
#endif /* DYNAMIC_CRC_TABLE */

/* Pre-condition the CRC */
- crc ^= 0xffffffff;
+ crc = (~crc) & 0xffffffff;

#ifdef W

@@ -1077,7 +1077,7 @@ uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
#ifdef DYNAMIC_CRC_TABLE
once(&made, make_crc_table);
#endif /* DYNAMIC_CRC_TABLE */
- return multmodp(x2nmodp(len2, 3), crc1) ^ crc2;
+ return multmodp(x2nmodp(len2, 3), crc1) ^ (crc2 & 0xffffffff);
}

/* ========================================================================= */
@@ -1112,5 +1112,5 @@ uLong crc32_combine_op(crc1, crc2, op)
uLong crc2;
uLong op;
{
- return multmodp(op, crc1) ^ crc2;
+ return multmodp(op, crc1) ^ (crc2 & 0xffffffff);
}
3 changes: 2 additions & 1 deletion package.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name : zlib
version : 1.2.12
release : 22
release : 23
source :
- https://github.com/madler/zlib/archive/refs/tags/v1.2.12.tar.gz : d8688496ea40fb61787500e863cc63c9afcbc524468cedeb478068924eb54932
homepage : http://www.zlib.net
Expand Down Expand Up @@ -30,6 +30,7 @@ patterns :
setup : |
%patch -p1 < $pkgfiles/no_ldconfig.patch
%patch -p1 < $pkgfiles/fix-cc-configure-issue.patch
%patch -p1 < $pkgfiles/correct-incorrect-inputs-crc.patch
./configure --prefix=/usr --libdir=%libdir%
Expand Down
24 changes: 12 additions & 12 deletions pspec_x86_64.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<Name>zlib</Name>
<Homepage>http://www.zlib.net</Homepage>
<Packager>
<Name>Joey Riches</Name>
<Email>josephriches@gmail.com</Email>
<Name>Reilly Brogan</Name>
<Email>solus@reillybrogan.com</Email>
</Packager>
<License>ZLIB</License>
<PartOf>system.base</PartOf>
Expand All @@ -29,7 +29,7 @@
<Description xml:lang="en">The zlib library is a compression library that aims to be unobtrusive.</Description>
<PartOf>emul32</PartOf>
<RuntimeDependencies>
<Dependency release="22">zlib</Dependency>
<Dependency release="23">zlib</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32/libz.so.1</Path>
Expand All @@ -42,8 +42,8 @@
<Description xml:lang="en">The zlib library is a compression library that aims to be unobtrusive.</Description>
<PartOf>programming.devel</PartOf>
<RuntimeDependencies>
<Dependency release="22">zlib-devel</Dependency>
<Dependency release="22">zlib-32bit</Dependency>
<Dependency release="23">zlib-devel</Dependency>
<Dependency release="23">zlib-32bit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32/libz.a</Path>
Expand All @@ -57,7 +57,7 @@
<Description xml:lang="en">The zlib library is a compression library that aims to be unobtrusive.</Description>
<PartOf>system.devel</PartOf>
<RuntimeDependencies>
<Dependency release="22">zlib</Dependency>
<Dependency release="23">zlib</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/zconf.h</Path>
Expand All @@ -73,7 +73,7 @@
<Description xml:lang="en">Mini zip and unzip based on zlib</Description>
<PartOf>system.utils</PartOf>
<RuntimeDependencies>
<Dependency release="22">zlib</Dependency>
<Dependency release="23">zlib</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib64/libminizip.so.1</Path>
Expand All @@ -86,7 +86,7 @@
<Description xml:lang="en">Mini zip and unzip based on zlib</Description>
<PartOf>programming.devel</PartOf>
<RuntimeDependencies>
<Dependency release="22">zlib-minizip</Dependency>
<Dependency release="23">zlib-minizip</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/minizip/crypt.h</Path>
Expand All @@ -100,12 +100,12 @@
</Files>
</Package>
<History>
<Update release="22">
<Date>2022-04-12</Date>
<Update release="23">
<Date>2022-04-25</Date>
<Version>1.2.12</Version>
<Comment>Packaging update</Comment>
<Name>Joey Riches</Name>
<Email>josephriches@gmail.com</Email>
<Name>Reilly Brogan</Name>
<Email>solus@reillybrogan.com</Email>
</Update>
</History>
</PISI>

0 comments on commit bad888f

Please sign in to comment.