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