Home | History | Annotate | Line # | Download | only in dist
      1      1.1   wiz  ------------------------------------------------------------------
      2      1.1   wiz  This file is part of bzip2/libbzip2, a program and library for
      3      1.1   wiz  lossless, block-sorting data compression.
      4      1.1   wiz 
      5  1.1.1.3  maya  bzip2/libbzip2 version 1.0.8 of 13 July 2019
      6  1.1.1.3  maya  Copyright (C) 1996-2019 Julian Seward <jseward (a] acm.org>
      7      1.1   wiz 
      8      1.1   wiz  Please read the WARNING, DISCLAIMER and PATENTS sections in the 
      9      1.1   wiz  README file.
     10      1.1   wiz 
     11      1.1   wiz  This program is released under the terms of the license contained
     12      1.1   wiz  in the file LICENSE.
     13      1.1   wiz  ------------------------------------------------------------------
     14      1.1   wiz 
     15      1.1   wiz 
     16      1.1   wiz 0.9.0
     17      1.1   wiz ~~~~~
     18      1.1   wiz First version.
     19      1.1   wiz 
     20      1.1   wiz 
     21      1.1   wiz 0.9.0a
     22      1.1   wiz ~~~~~~
     23      1.1   wiz Removed 'ranlib' from Makefile, since most modern Unix-es 
     24      1.1   wiz don't need it, or even know about it.
     25      1.1   wiz 
     26      1.1   wiz 
     27      1.1   wiz 0.9.0b
     28      1.1   wiz ~~~~~~
     29      1.1   wiz Fixed a problem with error reporting in bzip2.c.  This does not effect
     30      1.1   wiz the library in any way.  Problem is: versions 0.9.0 and 0.9.0a (of the
     31      1.1   wiz program proper) compress and decompress correctly, but give misleading
     32      1.1   wiz error messages (internal panics) when an I/O error occurs, instead of
     33      1.1   wiz reporting the problem correctly.  This shouldn't give any data loss
     34      1.1   wiz (as far as I can see), but is confusing.
     35      1.1   wiz 
     36      1.1   wiz Made the inline declarations disappear for non-GCC compilers.
     37      1.1   wiz 
     38      1.1   wiz 
     39      1.1   wiz 0.9.0c
     40      1.1   wiz ~~~~~~
     41      1.1   wiz Fixed some problems in the library pertaining to some boundary cases.
     42      1.1   wiz This makes the library behave more correctly in those situations.  The
     43      1.1   wiz fixes apply only to features (calls and parameters) not used by
     44      1.1   wiz bzip2.c, so the non-fixedness of them in previous versions has no
     45      1.1   wiz effect on reliability of bzip2.c.
     46      1.1   wiz 
     47      1.1   wiz In bzlib.c:
     48      1.1   wiz    * made zero-length BZ_FLUSH work correctly in bzCompress().
     49      1.1   wiz    * fixed bzWrite/bzRead to ignore zero-length requests.
     50      1.1   wiz    * fixed bzread to correctly handle read requests after EOF.
     51      1.1   wiz    * wrong parameter order in call to bzDecompressInit in
     52      1.1   wiz      bzBuffToBuffDecompress.  Fixed.
     53      1.1   wiz 
     54      1.1   wiz In compress.c:
     55      1.1   wiz    * changed setting of nGroups in sendMTFValues() so as to 
     56      1.1   wiz      do a bit better on small files.  This _does_ effect
     57      1.1   wiz      bzip2.c.
     58      1.1   wiz 
     59      1.1   wiz 
     60      1.1   wiz 0.9.5a
     61      1.1   wiz ~~~~~~
     62      1.1   wiz Major change: add a fallback sorting algorithm (blocksort.c)
     63      1.1   wiz to give reasonable behaviour even for very repetitive inputs.
     64      1.1   wiz Nuked --repetitive-best and --repetitive-fast since they are
     65      1.1   wiz no longer useful.
     66      1.1   wiz 
     67      1.1   wiz Minor changes: mostly a whole bunch of small changes/
     68      1.1   wiz bugfixes in the driver (bzip2.c).  Changes pertaining to the
     69      1.1   wiz user interface are:
     70      1.1   wiz 
     71      1.1   wiz    allow decompression of symlink'd files to stdout
     72      1.1   wiz    decompress/test files even without .bz2 extension
     73      1.1   wiz    give more accurate error messages for I/O errors
     74      1.1   wiz    when compressing/decompressing to stdout, don't catch control-C
     75      1.1   wiz    read flags from BZIP2 and BZIP environment variables
     76      1.1   wiz    decline to break hard links to a file unless forced with -f
     77      1.1   wiz    allow -c flag even with no filenames
     78      1.1   wiz    preserve file ownerships as far as possible
     79      1.1   wiz    make -s -1 give the expected block size (100k)
     80      1.1   wiz    add a flag -q --quiet to suppress nonessential warnings
     81      1.1   wiz    stop decoding flags after --, so files beginning in - can be handled
     82      1.1   wiz    resolved inconsistent naming: bzcat or bz2cat ?
     83      1.1   wiz    bzip2 --help now returns 0
     84      1.1   wiz 
     85      1.1   wiz Programming-level changes are:
     86      1.1   wiz 
     87      1.1   wiz    fixed syntax error in GET_LL4 for Borland C++ 5.02
     88      1.1   wiz    let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC}
     89      1.1   wiz    fix overshoot of mode-string end in bzopen_or_bzdopen
     90      1.1   wiz    wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... }
     91      1.1   wiz    close file handles under all error conditions
     92      1.1   wiz    added minor mods so it compiles with DJGPP out of the box
     93      1.1   wiz    fixed Makefile so it doesn't give problems with BSD make
     94      1.1   wiz    fix uninitialised memory reads in dlltest.c
     95      1.1   wiz 
     96      1.1   wiz 0.9.5b
     97      1.1   wiz ~~~~~~
     98      1.1   wiz Open stdin/stdout in binary mode for DJGPP.
     99      1.1   wiz 
    100      1.1   wiz 0.9.5c
    101      1.1   wiz ~~~~~~
    102      1.1   wiz Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1.  The + 1
    103      1.1   wiz version could cause the sorted order to be wrong in some extremely
    104      1.1   wiz obscure cases.  Also changed setting of quadrant in blocksort.c.
    105      1.1   wiz 
    106      1.1   wiz 0.9.5d
    107      1.1   wiz ~~~~~~
    108      1.1   wiz The only functional change is to make bzlibVersion() in the library
    109      1.1   wiz return the correct string.  This has no effect whatsoever on the
    110      1.1   wiz functioning of the bzip2 program or library.  Added a couple of casts
    111      1.1   wiz so the library compiles without warnings at level 3 in MS Visual
    112      1.1   wiz Studio 6.0.  Included a Y2K statement in the file Y2K_INFO.  All other
    113      1.1   wiz changes are minor documentation changes.
    114      1.1   wiz 
    115      1.1   wiz 1.0
    116      1.1   wiz ~~~
    117      1.1   wiz Several minor bugfixes and enhancements:
    118      1.1   wiz 
    119      1.1   wiz * Large file support.  The library uses 64-bit counters to
    120      1.1   wiz   count the volume of data passing through it.  bzip2.c 
    121      1.1   wiz   is now compiled with -D_FILE_OFFSET_BITS=64 to get large
    122      1.1   wiz   file support from the C library.  -v correctly prints out
    123      1.1   wiz   file sizes greater than 4 gigabytes.  All these changes have
    124      1.1   wiz   been made without assuming a 64-bit platform or a C compiler
    125      1.1   wiz   which supports 64-bit ints, so, except for the C library
    126      1.1   wiz   aspect, they are fully portable.
    127      1.1   wiz 
    128      1.1   wiz * Decompression robustness.  The library/program should be
    129      1.1   wiz   robust to any corruption of compressed data, detecting and
    130      1.1   wiz   handling _all_ corruption, instead of merely relying on
    131      1.1   wiz   the CRCs.  What this means is that the program should 
    132      1.1   wiz   never crash, given corrupted data, and the library should
    133      1.1   wiz   always return BZ_DATA_ERROR.
    134      1.1   wiz 
    135      1.1   wiz * Fixed an obscure race-condition bug only ever observed on
    136      1.1   wiz   Solaris, in which, if you were very unlucky and issued
    137      1.1   wiz   control-C at exactly the wrong time, both input and output
    138      1.1   wiz   files would be deleted.
    139      1.1   wiz 
    140      1.1   wiz * Don't run out of file handles on test/decompression when
    141      1.1   wiz   large numbers of files have invalid magic numbers.
    142      1.1   wiz 
    143      1.1   wiz * Avoid library namespace pollution.  Prefix all exported 
    144      1.1   wiz   symbols with BZ2_.
    145      1.1   wiz 
    146      1.1   wiz * Minor sorting enhancements from my DCC2000 paper.
    147      1.1   wiz 
    148      1.1   wiz * Advance the version number to 1.0, so as to counteract the
    149      1.1   wiz   (false-in-this-case) impression some people have that programs 
    150      1.1   wiz   with version numbers less than 1.0 are in some way, experimental,
    151      1.1   wiz   pre-release versions.
    152      1.1   wiz 
    153      1.1   wiz * Create an initial Makefile-libbz2_so to build a shared library.
    154      1.1   wiz   Yes, I know I should really use libtool et al ...
    155      1.1   wiz 
    156      1.1   wiz * Make the program exit with 2 instead of 0 when decompression
    157      1.1   wiz   fails due to a bad magic number (ie, an invalid bzip2 header).
    158      1.1   wiz   Also exit with 1 (as the manual claims :-) whenever a diagnostic
    159      1.1   wiz   message would have been printed AND the corresponding operation 
    160      1.1   wiz   is aborted, for example
    161      1.1   wiz      bzip2: Output file xx already exists.
    162      1.1   wiz   When a diagnostic message is printed but the operation is not 
    163      1.1   wiz   aborted, for example
    164      1.1   wiz      bzip2: Can't guess original name for wurble -- using wurble.out
    165      1.1   wiz   then the exit value 0 is returned, unless some other problem is
    166      1.1   wiz   also detected.
    167      1.1   wiz 
    168      1.1   wiz   I think it corresponds more closely to what the manual claims now.
    169      1.1   wiz 
    170      1.1   wiz 
    171      1.1   wiz 1.0.1
    172      1.1   wiz ~~~~~
    173      1.1   wiz * Modified dlltest.c so it uses the new BZ2_ naming scheme.
    174      1.1   wiz * Modified makefile-msc to fix minor build probs on Win2k.
    175      1.1   wiz * Updated README.COMPILATION.PROBLEMS.
    176      1.1   wiz 
    177      1.1   wiz There are no functionality changes or bug fixes relative to version
    178      1.1   wiz 1.0.0.  This is just a documentation update + a fix for minor Win32
    179      1.1   wiz build problems.  For almost everyone, upgrading from 1.0.0 to 1.0.1 is
    180      1.1   wiz utterly pointless.  Don't bother.
    181      1.1   wiz 
    182      1.1   wiz 
    183      1.1   wiz 1.0.2
    184      1.1   wiz ~~~~~
    185      1.1   wiz A bug fix release, addressing various minor issues which have appeared
    186      1.1   wiz in the 18 or so months since 1.0.1 was released.  Most of the fixes
    187      1.1   wiz are to do with file-handling or documentation bugs.  To the best of my
    188      1.1   wiz knowledge, there have been no data-loss-causing bugs reported in the
    189      1.1   wiz compression/decompression engine of 1.0.0 or 1.0.1.
    190      1.1   wiz 
    191      1.1   wiz Note that this release does not improve the rather crude build system
    192      1.1   wiz for Unix platforms.  The general plan here is to autoconfiscate/
    193      1.1   wiz libtoolise 1.0.2 soon after release, and release the result as 1.1.0
    194      1.1   wiz or perhaps 1.2.0.  That, however, is still just a plan at this point.
    195      1.1   wiz 
    196      1.1   wiz Here are the changes in 1.0.2.  Bug-reporters and/or patch-senders in
    197      1.1   wiz parentheses.
    198      1.1   wiz 
    199      1.1   wiz * Fix an infinite segfault loop in 1.0.1 when a directory is
    200      1.1   wiz   encountered in -f (force) mode.
    201      1.1   wiz      (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt)
    202      1.1   wiz 
    203      1.1   wiz * Avoid double fclose() of output file on certain I/O error paths.
    204      1.1   wiz      (Solar Designer)
    205      1.1   wiz 
    206      1.1   wiz * Don't fail with internal error 1007 when fed a long stream (> 48MB)
    207      1.1   wiz   of byte 251.  Also print useful message suggesting that 1007s may be
    208      1.1   wiz   caused by bad memory.
    209      1.1   wiz      (noticed by Juan Pedro Vallejo, fixed by me)
    210      1.1   wiz 
    211      1.1   wiz * Fix uninitialised variable silly bug in demo prog dlltest.c.
    212      1.1   wiz      (Jorj Bauer)
    213      1.1   wiz 
    214      1.1   wiz * Remove 512-MB limitation on recovered file size for bzip2recover
    215      1.1   wiz   on selected platforms which support 64-bit ints.  At the moment
    216      1.1   wiz   all GCC supported platforms, and Win32.
    217      1.1   wiz      (me, Alson van der Meulen)
    218      1.1   wiz 
    219      1.1   wiz * Hard-code header byte values, to give correct operation on platforms
    220      1.1   wiz   using EBCDIC as their native character set (IBM's OS/390).
    221      1.1   wiz      (Leland Lucius)
    222      1.1   wiz 
    223      1.1   wiz * Copy file access times correctly.
    224      1.1   wiz      (Marty Leisner)
    225      1.1   wiz 
    226      1.1   wiz * Add distclean and check targets to Makefile.
    227      1.1   wiz      (Michael Carmack)
    228      1.1   wiz 
    229      1.1   wiz * Parameterise use of ar and ranlib in Makefile.  Also add $(LDFLAGS).
    230      1.1   wiz      (Rich Ireland, Bo Thorsen)
    231      1.1   wiz 
    232      1.1   wiz * Pass -p (create parent dirs as needed) to mkdir during make install.
    233      1.1   wiz      (Jeremy Fusco)
    234      1.1   wiz 
    235      1.1   wiz * Dereference symlinks when copying file permissions in -f mode.
    236      1.1   wiz      (Volker Schmidt)
    237      1.1   wiz 
    238      1.1   wiz * Majorly simplify implementation of uInt64_qrm10.
    239      1.1   wiz      (Bo Lindbergh)
    240      1.1   wiz 
    241      1.1   wiz * Check the input file still exists before deleting the output one,
    242      1.1   wiz   when aborting in cleanUpAndFail().
    243      1.1   wiz      (Joerg Prante, Robert Linden, Matthias Krings)
    244      1.1   wiz 
    245      1.1   wiz Also a bunch of patches courtesy of Philippe Troin, the Debian maintainer
    246      1.1   wiz of bzip2:
    247      1.1   wiz 
    248      1.1   wiz * Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore.
    249      1.1   wiz 
    250      1.1   wiz * Spelling changes and minor enhancements in bzip2.1.
    251      1.1   wiz 
    252      1.1   wiz * Avoid race condition between creating the output file and setting its
    253      1.1   wiz   interim permissions safely, by using fopen_output_safely().
    254      1.1   wiz   No changes to bzip2recover since there is no issue with file
    255      1.1   wiz   permissions there.
    256      1.1   wiz 
    257      1.1   wiz * do not print senseless report with -v when compressing an empty
    258      1.1   wiz   file.
    259      1.1   wiz 
    260      1.1   wiz * bzcat -f works on non-bzip2 files.
    261      1.1   wiz 
    262      1.1   wiz * do not try to escape shell meta-characters on unix (the shell takes
    263      1.1   wiz   care of these).
    264      1.1   wiz 
    265      1.1   wiz * added --fast and --best aliases for -1 -9 for gzip compatibility.
    266      1.1   wiz 
    267      1.1   wiz 
    268      1.1   wiz 1.0.3 (15 Feb 05)
    269      1.1   wiz ~~~~~~~~~~~~~~~~~
    270      1.1   wiz Fixes some minor bugs since the last version, 1.0.2.
    271      1.1   wiz 
    272      1.1   wiz * Further robustification against corrupted compressed data.
    273      1.1   wiz   There are currently no known bitstreams which can cause the
    274      1.1   wiz   decompressor to crash, loop or access memory which does not
    275      1.1   wiz   belong to it.  If you are using bzip2 or the library to 
    276      1.1   wiz   decompress bitstreams from untrusted sources, an upgrade
    277      1.1   wiz   to 1.0.3 is recommended.  This fixes CAN-2005-1260.
    278      1.1   wiz 
    279      1.1   wiz * The documentation has been converted to XML, from which html
    280      1.1   wiz   and pdf can be derived.
    281      1.1   wiz 
    282      1.1   wiz * Various minor bugs in the documentation have been fixed.
    283      1.1   wiz 
    284      1.1   wiz * Fixes for various compilation warnings with newer versions of
    285      1.1   wiz   gcc, and on 64-bit platforms.
    286      1.1   wiz 
    287      1.1   wiz * The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2.
    288      1.1   wiz   This has been fixed.
    289      1.1   wiz 
    290      1.1   wiz 
    291      1.1   wiz 1.0.4 (20 Dec 06)
    292      1.1   wiz ~~~~~~~~~~~~~~~~~
    293      1.1   wiz Fixes some minor bugs since the last version, 1.0.3.
    294      1.1   wiz 
    295      1.1   wiz * Fix file permissions race problem (CAN-2005-0953).
    296      1.1   wiz 
    297      1.1   wiz * Avoid possible segfault in BZ2_bzclose.  From Coverity's NetBSD
    298      1.1   wiz   scan.
    299      1.1   wiz 
    300      1.1   wiz * 'const'/prototype cleanups in the C code.
    301      1.1   wiz 
    302      1.1   wiz * Change default install location to /usr/local, and handle multiple
    303      1.1   wiz   'make install's without error.
    304      1.1   wiz 
    305      1.1   wiz * Sanitise file names more carefully in bzgrep.  Fixes CAN-2005-0758
    306      1.1   wiz   to the extent that applies to bzgrep.
    307      1.1   wiz 
    308      1.1   wiz * Use 'mktemp' rather than 'tempfile' in bzdiff.
    309      1.1   wiz 
    310      1.1   wiz * Tighten up a couple of assertions in blocksort.c following automated
    311      1.1   wiz   analysis.
    312      1.1   wiz 
    313      1.1   wiz * Fix minor doc/comment bugs.
    314      1.1   wiz 
    315      1.1   wiz 
    316      1.1   wiz 1.0.5 (10 Dec 07)
    317      1.1   wiz ~~~~~~~~~~~~~~~~~
    318      1.1   wiz Security fix only.  Fixes CERT-FI 20469 as it applies to bzip2.
    319      1.1   wiz 
    320  1.1.1.2   wiz 
    321  1.1.1.2   wiz 1.0.6 (6 Sept 10)
    322  1.1.1.2   wiz ~~~~~~~~~~~~~~~~~
    323  1.1.1.2   wiz 
    324  1.1.1.2   wiz * Security fix for CVE-2010-0405.  This was reported by Mikolaj
    325  1.1.1.2   wiz   Izdebski.
    326  1.1.1.2   wiz 
    327  1.1.1.2   wiz * Make the documentation build on Ubuntu 10.04
    328  1.1.1.3  maya 
    329  1.1.1.3  maya 1.0.7 (27 Jun 19)
    330  1.1.1.3  maya ~~~~~~~~~~~~~~~~~
    331  1.1.1.3  maya 
    332  1.1.1.3  maya * Fix undefined behavior in the macros SET_BH, CLEAR_BH, & ISSET_BH
    333  1.1.1.3  maya 
    334  1.1.1.3  maya * bzip2: Fix return value when combining --test,-t and -q.
    335  1.1.1.3  maya 
    336  1.1.1.3  maya * bzip2recover: Fix buffer overflow for large argv[0]
    337  1.1.1.3  maya 
    338  1.1.1.3  maya * bzip2recover: Fix use after free issue with outFile (CVE-2016-3189)
    339  1.1.1.3  maya 
    340  1.1.1.3  maya * Make sure nSelectors is not out of range (CVE-2019-12900)
    341  1.1.1.3  maya 
    342  1.1.1.3  maya 1.0.8 (13 Jul 19)
    343  1.1.1.3  maya ~~~~~~~~~~~~~~~~~
    344  1.1.1.3  maya 
    345  1.1.1.3  maya * Accept as many selectors as the file format allows.
    346  1.1.1.3  maya   This relaxes the fix for CVE-2019-12900 from 1.0.7
    347  1.1.1.3  maya   so that bzip2 allows decompression of bz2 files that
    348  1.1.1.3  maya   use (too) many selectors again.
    349  1.1.1.3  maya 
    350  1.1.1.3  maya * Fix handling of large (> 4GB) files on Windows.
    351  1.1.1.3  maya 
    352  1.1.1.3  maya * Cleanup of bzdiff and bzgrep scripts so they don't use
    353  1.1.1.3  maya   any bash extensions and handle multiple archives correctly.
    354  1.1.1.3  maya 
    355  1.1.1.3  maya * There is now a bz2-files testsuite at
    356  1.1.1.3  maya   https://sourceware.org/git/bzip2-tests.git
    357