summaryrefslogtreecommitdiff
path: root/crc32.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* zlib 1.2.9v1.2.9Mark Adler2016-12-311-1/+1
|
* Add crc32_z() and adler32_z() functions with size_t lengths.Mark Adler2016-12-311-6/+15
|
* Clean up and comment the use of local for static.Mark Adler2016-10-261-2/+0
|
* Note the violation of the strict aliasing rule in crc32.c.Mark Adler2016-10-031-0/+12
| | | | | | See the comment for more details. This is in response to an issue raised as a result of a security audit of the zlib code by Trail of Bits and TrustInSoft, in support of the Mozilla Foundation.
* Avoid pre-decrement of pointer in big-endian CRC calculation.Mark Adler2016-09-281-3/+1
| | | | | | | | | | | | | | There was a small optimization for PowerPCs to pre-increment a pointer when accessing a word, instead of post-incrementing. This required prefacing the loop with a decrement of the pointer, possibly pointing before the object passed. This is not compliant with the C standard, for which decrementing a pointer before its allocated memory is undefined. When tested on a modern PowerPC with a modern compiler, the optimization no longer has any effect. Due to all that, and per the recommendation of a security audit of the zlib code by Trail of Bits and TrustInSoft, in support of the Mozilla Foundation, this "optimization" was removed, in order to avoid the possibility of undefined behavior.
* Fix type mismatch between get_crc_table() and crc_table.Mark Adler2012-04-291-45/+22
| | | | | | | | | | | | | crc_table is made using a four-byte integer (when that can be determined). However get_crc_table() returned a pointer to an unsigned long, which could be eight bytes. This fixes that by creating a new z_crc_t type for the crc_table. This type is also used for the BYFOUR crc calculations that depend on a four-byte type. The four-byte type can now be determined by ./configure, which also solves a problem where ./configure --solo would never use BYFOUR. No the Z_U4 #define indicates that four- byte integer was found either by ./configure or by zconf.h.
* zlib 1.2.6.1v1.2.6.1Mark Adler2012-02-121-1/+1
|
* Use optimized byte swap operations for Microsoft and GNU [Snyder].Mark Adler2012-02-111-6/+4
|
* Avoid library header include in crc32.c for Z_SOLO.Mark Adler2012-02-011-0/+3
| | | | | | | | | | | crc32.c was #including limits.h in order to find a four-byte integer type. It was doing this even if Z_SOLO were defined, violating the intent of Z_SOLO, which is to include no library headers and require no library functions. Now crc32.c obeys the intent of Z_SOLO, but with the downside that crc32() will be slower than when not compiled with Z_SOLO. This can be remedied manually by typedefing u4 to a known four-byte unsigned integer type, and #defining BYFOUR in crc32.c.
* zlib 1.2.5.1v1.2.5.1Mark Adler2011-09-111-13/+18
|
* zlib 1.2.5v1.2.5Mark Adler2011-09-091-1/+1
|
* zlib 1.2.4.1v1.2.4.1Mark Adler2011-09-091-1/+1
|
* zlib 1.2.3.4v1.2.3.4Mark Adler2011-09-091-25/+7
|
* zlib 1.2.3.3v1.2.3.3Mark Adler2011-09-091-2/+39
|
* zlib 1.2.2.4v1.2.2.4Mark Adler2011-09-091-4/+5
|
* zlib 1.2.2.3v1.2.2.3Mark Adler2011-09-091-3/+3
|
* zlib 1.2.2.2v1.2.2.2Mark Adler2011-09-091-1/+1
|
* zlib 1.2.2.1v1.2.2.1Mark Adler2011-09-091-3/+92
|
* zlib 1.2.2v1.2.2Mark Adler2011-09-091-46/+46
|
* zlib 1.2.1.2v1.2.1.2Mark Adler2011-09-091-28/+50
|
* zlib 1.2.0.5v1.2.0.5Mark Adler2011-09-091-8/+7
|
* zlib 1.2.0.4v1.2.0.4Mark Adler2011-09-091-1/+1
|
* zlib 1.2.0.2v1.2.0.2Mark Adler2011-09-091-12/+16
|
* zlib 1.2.0v1.2.0Mark Adler2011-09-091-102/+248
|
* zlib 1.1.4v1.1.4Mark Adler2011-09-091-1/+1
|
* zlib 1.0.9v1.0.9Mark Adler2011-09-091-2/+2
|
* zlib 1.0.8v1.0.8Mark Adler2011-09-091-4/+4
|
* zlib 1.0.7v1.0.7Mark Adler2011-09-091-4/+4
|
* zlib 1.0.1v1.0.1Mark Adler2011-09-091-10/+52
|
* zlib 1.0-prev1.0-preMark Adler2011-09-091-51/+9
|
* zlib 0.99v0.99Mark Adler2011-09-091-9/+51
|
* zlib 0.94v0.94Mark Adler2011-09-091-2/+2
|
* zlib 0.93v0.93Mark Adler2011-09-091-31/+38
|
* zlib 0.9v0.9Mark Adler2011-09-091-3/+13
|
* zlib 0.71v0.71Mark Adler2011-09-091-0/+103