1. 29 9月, 2016 1 次提交
    • M
      Avoid pre-decrement of pointer in big-endian CRC calculation. · d1d57749
      Mark Adler 提交于
      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.
      d1d57749
  2. 22 9月, 2016 3 次提交
    • M
      Remove offset pointer optimization in inftrees.c. · 6a043145
      Mark Adler 提交于
      inftrees.c was subtracting an offset from a pointer to an array,
      in order to provide a pointer that allowed indexing starting at
      the offset. This is not compliant with the C standard, for which
      the behavior of a pointer decremented before its allocated memory
      is undefined. Per the recommendation of a security audit of the
      zlib code by Trail of Bits and TrustInSoft, in support of the
      Mozilla Foundation, this tiny optimization was removed, in order
      to avoid the possibility of undefined behavior.
      6a043145
    • M
      Use post-increment only in inffast.c. · 9aaec95e
      Mark Adler 提交于
      An old inffast.c optimization turns out to not be optimal anymore
      with modern compilers, and furthermore was not compliant with the
      C standard, for which decrementing a pointer before its allocated
      memory is undefined. 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.
      9aaec95e
    • M
      Remove dummy structure declarations for old buggy compilers. · 3fb251b3
      Mark Adler 提交于
      While woolly mammoths still roamed the Earth and before Atlantis
      sunk into the ocean, there were C compilers that could not handle
      forward structure references, e.g. "struct name;". zlib dutifully
      provided a work-around for such compilers. That work-around is no
      longer needed, and, per the recommendation of a security audit of
      the zlib code by Trail of Bits and TrustInSoft, in support of the
      Mozilla Foundation, should be removed since what a compiler will
      do with this is technically undefined. From the report: "there is
      no telling what interactions the bug could have in the future with
      link-time optimizations and type-based alias analyses, both
      features that are present (but not default) in clang."
      3fb251b3
  3. 21 9月, 2016 3 次提交
    • M
      Fix typo. · 33a7aff4
      Mark Adler 提交于
      33a7aff4
    • M
      Add option to not compute or check check values. · 9852c209
      Mark Adler 提交于
      The undocumented (except in these commit comments) function
      inflateValidate(strm, check) can be called after an inflateInit(),
      inflateInit2(), or inflateReset2() with check equal to zero to
      turn off the check value (CRC-32 or Adler-32) computation and
      comparison. Calling with check not equal to zero turns checking
      back on. This should only be called immediately after the init or
      reset function. inflateReset() does not change the state, so a
      previous inflateValidate() setting will remain in effect.
      
      This also turns off validation of the gzip header CRC when
      present.
      
      This should only be used when a zlib or gzip stream has already
      been checked, and repeated decompressions of the same stream no
      longer need to be validated.
      9852c209
    • M
      Correct the size of the inflate state in the comments. · 93b0af4a
      Mark Adler 提交于
      93b0af4a
  4. 11 7月, 2016 1 次提交
  5. 18 6月, 2016 1 次提交
  6. 05 4月, 2016 1 次提交
  7. 30 1月, 2016 1 次提交
  8. 27 11月, 2015 1 次提交
    • M
      Fix bug that accepted invalid zlib header when windowBits is zero. · 6cef1de7
      Mark Adler 提交于
      When windowBits is zero, the size of the sliding window comes from
      the zlib header.  The allowed values of the four-bit field are
      0..7, but when windowBits is zero, values greater than 7 are
      permitted and acted upon, resulting in large, mostly unused memory
      allocations.  This fix rejects such invalid zlib headers.
      6cef1de7
  9. 05 10月, 2015 1 次提交
  10. 17 9月, 2015 1 次提交
  11. 06 9月, 2015 2 次提交
  12. 16 8月, 2015 2 次提交
  13. 03 8月, 2015 2 次提交
    • M
      Allow building zlib outside of the source directory. · 55d98b4c
      Mark Adler 提交于
      To build, simply run configure from the source directory by
      specifying its path.  That path will be used to find the source
      files.  The source directory will not be touched.  All new and
      modified files will be made in the current directory.  Discovered
      in the process that not all makes understand % or $<, and not all
      compilers understand -include or -I-.  This required a larger
      Makefile.in with explicit dependencies.
      55d98b4c
    • M
      Do not initialize unsigned with -1 in compress.c uncompr.c. · bfcace04
      Mark Adler 提交于
      Sun compiler complained.  Use (unsigned)0 - 1 instead.
      bfcace04
  14. 02 8月, 2015 2 次提交
  15. 29 7月, 2015 7 次提交
  16. 08 7月, 2015 1 次提交
  17. 06 7月, 2015 2 次提交
  18. 27 1月, 2015 1 次提交
  19. 29 12月, 2014 1 次提交
  20. 03 7月, 2014 1 次提交
  21. 26 4月, 2014 3 次提交
  22. 25 4月, 2014 1 次提交
    • M
      Assure that gzoffset() is correct when appending. · 72c70060
      Mark Adler 提交于
      An open() with O_APPEND followed by an lseek() to determine the
      position will return zero for a non-empty file, even though the
      next write will start at the end of the file.  This commit works
      around that by doing an lseek() to the end when appending.
      72c70060
  23. 25 8月, 2013 1 次提交