Skip to content

Commit 4de0229

Browse files
committed
Import bzip2-1.0.6 (matching svn r89086)
0 parents  commit 4de0229

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+47263
-0
lines changed

CHANGES

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

LICENSE

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
--------------------------------------------------------------------------
3+
4+
This program, "bzip2", the associated library "libbzip2", and all
5+
documentation, are copyright (C) 1996-2010 Julian R Seward. All
6+
rights reserved.
7+
8+
Redistribution and use in source and binary forms, with or without
9+
modification, are permitted provided that the following conditions
10+
are met:
11+
12+
1. Redistributions of source code must retain the above copyright
13+
notice, this list of conditions and the following disclaimer.
14+
15+
2. The origin of this software must not be misrepresented; you must
16+
not claim that you wrote the original software. If you use this
17+
software in a product, an acknowledgment in the product
18+
documentation would be appreciated but is not required.
19+
20+
3. Altered source versions must be plainly marked as such, and must
21+
not be misrepresented as being the original software.
22+
23+
4. The name of the author may not be used to endorse or promote
24+
products derived from this software without specific prior written
25+
permission.
26+
27+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
28+
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
29+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30+
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
31+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33+
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
35+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38+
39+
Julian Seward, [email protected]
40+
bzip2/libbzip2 version 1.0.6 of 6 September 2010
41+
42+
--------------------------------------------------------------------------

0 commit comments

Comments
 (0)