Branch


Log

Author Commit Date CI Message
Thomas de Grivel 245461e6 2025-10-25T14:44:19 fix configure
Thomas de Grivel 85a55698 2025-10-25T11:42:54 fix makefile
Thomas de Grivel 65dbf5e1 2025-10-25T11:41:09 wip build in separate dir
Thomas de Grivel d7142e6f 2025-10-25T11:34:32 wip configure
Thomas de Grivel 6fcbaa73 2025-10-25T11:32:16 wip configure
Thomas de Grivel 012cdc50 2025-10-25T11:20:50 install shell script binaries
Thomas de Grivel e52b1295 2025-10-25T11:19:16 configure prefix
Thomas de Grivel 42f97f1f 2025-10-25T11:16:00 fix Makefile
Thomas de Grivel 115d5442 2025-10-25T11:14:51 don't run tests when building
Thomas de Grivel 8d72071d 2025-10-25T11:13:56 make test
Thomas de Grivel aad9b82c 2025-10-25T11:12:01 wip: configure and build in separate dir
Thomas de Grivel 47ef5df4 2025-10-25T11:10:47 wip build script
Thomas de Grivel 718bc483 2025-10-25T11:03:48 configure
Thomas de Grivel ce27ecee 2025-10-25T10:52:59 add minimalistic configure script
Thomas de Grivel ef07d442 2025-10-25T10:48:45 update Makefile to support build in separate dir and use DESTDIR and ${prefix}
Mark Wielaard af792536 2025-06-19T21:07:22 bzip2.c: Check argc >= 1 && argv[0] != NULL This should never happen, but if there is no, or a NULL argv[0] then use a hard coded string "bzip2" when calling copyFileName to define progNameReally. https://sourceware.org/bugzilla/show_bug.cgi?id=33046
Mark Wielaard 2b76d786 2025-06-15T14:50:52 bzlib.h: Move #includes outside extern "C" {...} This helps C++ compilers that come with their own standard library headers that don't expect to be included inside of extern "C" {...}. https://sourceware.org/bugzilla/show_bug.cgi?id=32812
Mark Wielaard fbc4b11d 2024-04-09T21:11:02 Make sure to call isdigit and isspace with unsigned char Casting to Int32 or int could create negative values. Which isspace and isdigit don't handle. SEI CERT C Coding Standard STR37-C. Resolve by casting to UChar or unsigned char instead of Int32 or int. https://sourceware.org/bugzilla/show_bug.cgi?id=28283
Mark Wielaard 9de658d2 2022-05-26T22:38:01 Initialize the fave and cost arrays fully We try to be smart in sendMTFValues by initializing just nGroups number of elements instead of all BZ_N_GROUPS elements. But this means the compiler doesn't know all elements are correctly initialized and might warn. The arrays are really small, BZ_N_GROUPS, 6 elements. And nGroups == BZ_N_GROUPS is the common case. So just initialize them all always. Using a constant loop might also help the compiler to optimize the initialization. https://sourceware.org/bugzilla/show_bug.cgi?id=28904
Mark Wielaard 64d6fa68 2022-04-21T00:56:04 Mark SEE ALSO commands with .BR in bzdiff.1, bzgrep.1 and bzmore.1 This makes sure all commands show up as bold in the man pages. Suggested-by: Helge Kreutzmann <debian@helgefjell.de>
Mark Wielaard 28da6196 2022-04-20T00:31:01 Define STDERR_FILENO for BZ_LCCWIN32 STDERR_FILENO is *nix specific and is not defined under MSVC. So define it using _fileno(stderr). Suggested-by: Dmitry Tsarevich <dimhotepus@gmail.com>
Mark Wielaard 8ca1faa3 2020-05-17T20:02:31 Don't call unsafe functions from SIGSEGV/SIGBUS signal handler. GCC10 -fanalyzer notices that we try to call functions that are not signal safe from our fatal signal handler: bzip2.c: In function ‘mySIGSEGVorSIGBUScatcher’: bzip2.c:819:7: warning: call to ‘fprintf’ from within signal handler [CWE-479] [-Wanalyzer-unsafe-call-within-signal-handler] It also notices we then call showFileNames and cleanupAndFail which also call possibly not signal safe functions. Just write out the error message directly to STDERR and exit without trying to clean up any files.
Mark Wielaard 40226134 2020-05-17T15:43:45 manual.xml: Add BZ_SEQUENCE_ERROR to return values of BZ2_bzDecompress BZ_SEQUENCE_ERROR can be returned if BZ2_bzDecompress is called after an earlier call already returned BZ_STREAM_END. Reported-by: Vanessa McHale <vamchale@gmail.com>
Mark Wielaard 475173c2 2019-07-21T17:35:44 Add generation of bzip2.txt and bzip2.1.preformatted to Makefile. And remove both pages from the repository since the will now be generated by make dist. Also don't try to update them in prepare-release.sh script.
Mark Wielaard cb18332a 2019-07-21T19:58:59 Mention the --help command line option in the documentation. Bug-Debian: https://bugs.debian.org/517257
Mark Wielaard 8d9410ce 2019-07-21T17:09:25 bzip2.1: remove blank spaces in man page and drop the .PU macro. Author: Bjarni Ingi Gislason Bug-Debian: https://bugs.debian.org/675380
Mark Wielaard 6a8690fc 2019-07-13T17:17:58 Prepare for 1.0.8 release.
Mark Wielaard 1c8dd869 2019-07-13T17:06:25 prepare-release.sh: Fix bz-lifespan typo.
Mark Wielaard 48e4d874 2019-07-11T20:05:42 manual: Add id to legalnotice. Otherwise the generated HTML will have a different randomly generated name id which generates spurious diffs.
Mark Wielaard d0b47bde 2019-07-12T01:06:33 Fix bzgrep so it doesn't always return a 0 exit code with multiple archives The bzgrep wrapper always returns 0 as exit code when working on multiple archives, even when the pattern is not found. Fix from openSUSE by Kristýna Streitová <kstreitova@suse.com> https://bugzilla.suse.com/970260
Mark Wielaard 33414da1 2019-07-12T00:50:54 Fix bashism in bzgrep bzgrep uses ${var//} which is a bashism. Replace by calling sed so other POSIX shells work. Patch from openSUSE by Led <ledest@gmail.com>
Mark Wielaard f7d209bf 2019-07-11T23:24:29 fix bzdiff when TMPDIR contains spaces The bzdiff script doesn't contain enough quotes, so that it doesn't work if the TMPDIR environment variable is defined and contains spaces. https://bugs.debian.org/493710 Author: Vincent Lefevre <vincent@vinc17.org>
Mark Wielaard d50cc4b0 2019-07-11T19:54:37 Replace project contact email with bzip2-devel@sourceware.org. Keep Julian's email as author information, but redirect general project feedback in the code and manual to the community mailinglist.
Mark Wielaard 04e97920 2019-07-11T02:40:18 release-update.sh should update version number in website pages too.
Mark Wielaard b07b105d 2019-07-03T01:28:11 Accept as many selectors as the file format allows. But ignore any larger than the theoretical maximum, BZ_MAX_SELECTORS. The theoretical maximum number of selectors depends on the maximum blocksize (900000 bytes) and the number of symbols (50) that can be encoded with a different Huffman tree. BZ_MAX_SELECTORS is 18002. But the bzip2 file format allows the number of selectors to be encoded with 15 bits (because 18002 isn't a factor of 2 and doesn't fit in 14 bits). So the file format maximum is 32767 selectors. Some bzip2 encoders might actually have written out more selectors than the theoretical maximum because they rounded up the number of selectors to some convenient factor of 8. The extra 14766 selectors can never be validly used by the decompression algorithm. So we can read them, but then discard them. This is effectively what was done (by accident) before we added a check for nSelectors to be at most BZ_MAX_SELECTORS to mitigate CVE-2019-12900. The extra selectors were written out after the array inside the EState struct. But the struct has extra space allocated after the selector arrays of 18060 bytes (which is larger than 14766). All of which will be initialized later (so the overwrite of that space with extra selector values would have been harmless).
Phil Ross 13d8bce0 2019-05-21T20:46:14 Fix a 'not a normal file' error when compressing large files. The bzip2 command line would report 'not a normal file' for files of size larger than 2^32 - 1 bytes. Patch bzip2.c to use _stati64 instead of _stat so that a successful result is returned for large files. Resolves https://github.com/philr/bzip2-windows/issues/3.
Mark Wielaard 5a4a6f44 2019-07-03T22:22:16 Update prepare-release.sh for Makefile* and date ranges. Also update the version number in the Makefile comments. And update any date ranges to include the current year.
Joshua Watt 53f3d0d7 2019-07-02T15:05:44 Fix include path separator Changes the include path separator for Windows builds to use "/" instead of "\". Windows has no problems with using a forward slash as a path separator, but using a backslash causes problems when attempting to cross compile for other platforms (for example, when trying to cross compile for MinGW from Linux).
Joshua Watt 61b434b4 2019-07-02T15:06:01 Always treat .ref files as binary .ref files should always be treated as binary files so that git does not attempt to convert the line endings if core.autocrlf is set.
Joshua Watt 35dd3cf9 2019-07-02T15:05:53 Update .gitignore Updates the .gitignore file to ignore many build artifacts
Mark Wielaard f319b98a 2019-06-27T20:10:07 Prepare for 1.0.7 release.
Mark Wielaard f1e93777 2019-06-25T19:22:37 Add prepare-release.sh script. Script to run to prepare a new release. It will update the release number and tell you to update the CHANGES file and to double check everything looks before doing the release commit and tagging. Afterwards you probably want to run release-update.sh to upload the release and update the website at https://sourceware.org/bzip2/ There are embedded version strings and dates in a couple of places. To keep the script simple remove some that aren't absolutely necessary. README now just points to CHANGES. README.COMPILATION.PROBLEMS only mentions the version once at the top. bzip2.c only mentions the version once when doing --version. manual.xml now doesn't have any embedded versions, just uses &bz-version; everywhere.
Federico Mena Quintero ff986850 2019-05-29T17:14:27 Change a magic number (6) for a constant (BZ_N_GROUPS). decompress.c (BZ2_decompress): Check nGroups against BZ_N_GROUPS.
Albert Astals Cid 7ed62bfb 2019-05-28T19:35:18 Make sure nSelectors is not out of range nSelectors is used in a loop from 0 to nSelectors to access selectorMtf which is UChar selectorMtf[BZ_MAX_SELECTORS]; so if nSelectors is bigger than BZ_MAX_SELECTORS it'll do an invalid memory access Fixes out of bounds access discovered while fuzzying karchive This was reported as CVE-2019-12900 BZ2_decompress in decompress.c in bzip2 through 1.0.6 has an out-of-bounds write when there are many selectors.
Paul Kehrer 16f2c753 2019-06-08T10:06:40 Fix undefined behavior in the macros SET_BH, CLEAR_BH, & ISSET_BH These macros contain this pattern: 1 << ((Int32_value) & 31 This causes the undefined behavior sanitizers in clang and gcc to complain because the shift, while ultimately stored to an unsigned variable, is done as a signed value. Adding a cast to unsigned for the int32 value resolves this issue.
Mark Wielaard f51f164d 2019-06-24T09:31:16 bzip2: Fix return value when combining --test,-t and -q. When passing -q to get quiet output --test would not display an error message, but would also suppress the exit 2 code to indicate the file was corrupt. Only suppress the error message with -q, not the exit value. This patch comes from Debian. "bunzip2 -qt returns 0 for corrupt archives" https://bugs.debian.org/279025
Mark Wielaard c1cdd98d 2019-06-24T00:45:32 bzip2recover: Fix use after free issue with outFile. bzip2recover.c (main): Make sure to set outFile to NULL when done. This was reported as CVE-2016-3189 and found in multiple distributions. https://seclists.org/oss-sec/2016/q2/568 Some more analysis can be found in: https://bugzilla.redhat.com/show_bug.cgi?id=1319648
Mark Wielaard 833548ed 2019-06-24T00:14:02 bzip2recover: Fix buffer overflow for large argv[0]. bzip2recover.c (main) copies argv[0] to a statically sized buffer without checking whether argv[0] might be too big (> 2000 chars). This patch comes from Fedora and was originally reported at https://bugzilla.redhat.com/show_bug.cgi?id=226979
Mark Wielaard 02fe3ca2 2019-06-23T23:52:03 bzip2.c (testStream): Remove set, but not used nread variable. Modern GCC warns: bzip2.c: In function ‘testStream’: bzip2.c:557:37: warning: variable ‘nread’ set but not used [-Wunused-but-set-variable] Int32 bzerr, bzerr_dummy, ret, nread, streamNo, i; ^~~~~ GCC is correct. In testStream we don't care about the number of bytes read by BZ2_bzRead. So just remove the variable and the assignment.
Mark Wielaard 32db5b67 2019-06-23T22:18:58 Add release-update.sh script. Script to run after a release has been tagged, signed and pushed to git. Will do a fresh checkout, verify the git tag, do fresh build/dist, sign the dist with gpg, create a backup copy in HOME, upload the tar.gz and sig to sourceware, checkout bzip2-htdocs, copy over the new changes, manual, etc. and git push that to update https://sourceware.org/bzip2/
Mark Wielaard ac9b3847 2019-06-23T02:14:23 Use UTF-8 encoding and include bzip.css as link for HTML manual.
Mark Wielaard ddd8bae9 2019-06-23T00:47:20 Adjust bzip.css images to new https://sourceware.org/bzip2/ location.
Mark Wielaard 032a25ee 2019-03-30T23:09:35 Change all bzip.org URLs to sourceware.org/bzip2
Mark Wielaard 5b923861 2019-03-30T22:56:16 Change Julian's email address to jseward@acm.org
Julian Seward 962d6061 2010-09-06T22:13:13 bzip2-1.0.6
Julian Seward a1d78c55 2007-12-10T22:13:13 bzip2-1.0.5
Julian Seward f10a3353 2006-12-20T22:13:13 bzip2-1.0.4
Julian Seward 4d540bfc 2005-02-15T22:13:13 bzip2-1.0.3
Julian Seward 099d8442 2001-12-30T22:13:13 bzip2-1.0.2
Julian Seward 795b859e 2000-06-24T22:13:13 bzip2-1.0.1
Julian Seward f93cd82a 1999-09-04T22:13:13 bzip2-0.9.5d
Julian Seward 977101ad 1998-08-23T22:13:13 bzip2-0.9.0c
Julian Seward 1eb67a9d 1997-08-29T22:13:13 bzip2-0.1pl2
Julian Seward 33d13403 1997-08-07T22:13:13 bzip2-0.1