This repository has been archived by the owner on Sep 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
1 parent
9872b20
commit bad888f
Showing
3 changed files
with
65 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters