int64_t stream_offset;
/*
- * Decompressing control.
+ * Decompressing control data.
*/
unsigned folder_index;
uint64_t folder_outbytes_reamining;
unsigned long codec;
unsigned long codec2;
- /* Decompressor control. */
+ /*
+ * Decompressor controllers.
+ */
+ /* Decording LZMA1 and LZMA2 data. */
#ifdef HAVE_LZMA_H
lzma_stream lzstream;
int lzstream_valid;
#endif
+ /* Decording bzip2 data. */
#if defined(HAVE_BZLIB_H) && defined(BZ_CONFIG_ERROR)
bz_stream bzstream;
int bzstream_valid;
#endif
+ /* Decording deflate data. */
#ifdef HAVE_ZLIB_H
z_stream stream;
int stream_valid;
#endif
+ /* Decording PPMd data. */
int ppmd7_stat;
CPpmd7 ppmd7_context;
CPpmd7z_RangeDec range_dec;
} ppstream;
int ppmd7_valid;
- /* Used for decoding BCJ. */
+ /* Decoding BCJ and BCJ2 data. */
uint32_t bcj_state;
size_t odd_bcj_size;
unsigned char odd_bcj[4];
+ /* Decoding BCJ2 data. */
+ size_t main_stream_bytes_remaining;
+ unsigned char *sub_stream_buff[3];
+ size_t sub_stream_size[3];
+ size_t sub_stream_bytes_remaining[3];
+ unsigned char *tmp_stream_buff;
+ size_t tmp_stream_buff_size;
+ size_t tmp_stream_bytes_avail;
+ size_t tmp_stream_bytes_remaining;
+#ifdef _LZMA_PROB32
+#define CProb uint32_t
+#else
+#define CProb uint16_t
+#endif
+ CProb bcj2_p[256 + 2];
+ uint8_t bcj2_prevByte;
+ uint32_t bcj2_range;
+ uint32_t bcj2_code;
+ uint64_t bcj2_outPos;
+
+ /* Filename character-set convertion data. */
struct archive_string_conv *sconv;
+
char format_name[64];
};
static ssize_t get_uncompressed_data(struct archive_read *, const void **,
size_t);
static int init_decompression(struct archive_read *, struct _7zip *,
- struct _7z_coder *, struct _7z_coder *);
+ const struct _7z_coder *, const struct _7z_coder *);
static int parse_7zip_uint64(const unsigned char *, size_t, uint64_t *);
static int read_Bools(unsigned char *, size_t, const unsigned char *,
size_t);
static int setup_decode_folder(struct archive_read *, struct _7z_folder *,
int);
#ifdef HAVE_LZMA_H
-static size_t x86_Convert(unsigned char *, size_t, uint32_t, uint32_t *);
+static size_t x86_Convert(uint8_t *, size_t, uint32_t, uint32_t *);
+ssize_t Bcj2_Decode(struct _7zip *, uint8_t *, size_t);
#endif
{
struct _7zip *zip;
ssize_t bytes;
+ int ret = ARCHIVE_OK;
zip = (struct _7zip *)(a->format->data);
(unsigned long)zip->entry_crc32,
(unsigned long)zip->si.ss.digests[
zip->entry->ssIndex]);
- return (ARCHIVE_WARN);
+ ret = ARCHIVE_WARN;
}
}
*offset = zip->entry_offset;
zip->entry_offset += bytes;
- return (ARCHIVE_OK);
+ return (ret);
}
static int
free(zip->entry_names);
free_decompression(a, zip);
free(zip->uncompressed_buffer);
+ free(zip->sub_stream_buff[0]);
+ free(zip->sub_stream_buff[1]);
+ free(zip->sub_stream_buff[2]);
+ free(zip->tmp_stream_buff);
free(zip);
(a->format->data) = NULL;
return (ARCHIVE_OK);
static int
init_decompression(struct archive_read *a, struct _7zip *zip,
- struct _7z_coder *coder1, struct _7z_coder *coder2)
+ const struct _7z_coder *coder1, const struct _7z_coder *coder2)
{
int r;
/* Use our filter. */
zip->bcj_state = 0;
break;
+ case _7Z_X86_BCJ2:
+ /* Use our filter. */
+ zip->bcj_state = 0;
+ break;
case _7Z_DELTA:
filters[fi].id = LZMA_FILTER_DELTA;
memset(&delta_opt, 0, sizeof(delta_opt));
#ifdef HAVE_LZMA_H
case _7Z_LZMA: case _7Z_LZMA2:
{
+ uint8_t *bcj2_out;
+ size_t bcj2_avail;
int i;
zip->lzstream.next_in = b;
if (avail_in == 0 || zip->lzstream.avail_out == 0) {
*used = avail_in - zip->lzstream.avail_in;
*outbytes = avail_out - zip->lzstream.avail_out;
- return (ARCHIVE_OK);
+ if (avail_in == 0)
+ ret = ARCHIVE_EOF;
+ return (ret);
}
}
+ if (zip->codec2 == _7Z_X86_BCJ2) {
+ bcj2_out = zip->lzstream.next_out;
+ bcj2_avail = zip->lzstream.avail_out;
+ if (zip->tmp_stream_bytes_remaining > 0) {
+ ssize_t bytes;
+ size_t remaining = zip->tmp_stream_bytes_remaining;
+ bytes = Bcj2_Decode(zip, bcj2_out, bcj2_avail);
+ if (bytes < 0) {
+ archive_set_error(&(a->archive),
+ ARCHIVE_ERRNO_MISC,
+ "BCJ2 conversion Failed");
+ return (ARCHIVE_FAILED);
+ }
+ zip->main_stream_bytes_remaining -=
+ remaining - zip->tmp_stream_bytes_remaining;
+ bcj2_avail -= bytes;
+ if (avail_in == 0 || bcj2_avail == 0) {
+ *used = 0;
+ *outbytes = avail_out - bcj2_avail;
+ if (avail_in == 0)
+ ret = ARCHIVE_EOF;
+ return (ret);
+ }
+ bcj2_out += bytes;
+ }
+ zip->lzstream.next_out = zip->tmp_stream_buff;
+ zip->lzstream.avail_out = zip->tmp_stream_buff_size;
+ }
+
r = lzma_code(&(zip->lzstream), LZMA_RUN);
switch (r) {
case LZMA_STREAM_END: /* Found end of stream. */
*outbytes = l;
} else
zip->odd_bcj_size = 0;
+ } else if (zip->codec2 == _7Z_X86_BCJ2) {
+ ssize_t bytes;
+
+ zip->tmp_stream_bytes_avail =
+ zip->tmp_stream_buff_size - zip->lzstream.avail_out;
+ if (zip->tmp_stream_bytes_avail >
+ zip->main_stream_bytes_remaining)
+ zip->tmp_stream_bytes_avail =
+ zip->main_stream_bytes_remaining;
+ zip->tmp_stream_bytes_remaining =
+ zip->tmp_stream_bytes_avail;
+ bytes = Bcj2_Decode(zip, bcj2_out, bcj2_avail);
+ if (bytes < 0) {
+ archive_set_error(&(a->archive),
+ ARCHIVE_ERRNO_MISC,
+ "BCJ2 conversion Failed");
+ return (ARCHIVE_FAILED);
+ }
+ zip->main_stream_bytes_remaining -=
+ zip->tmp_stream_bytes_avail
+ - zip->tmp_stream_bytes_remaining;
+ bcj2_avail -= bytes;
+ *outbytes = avail_out - bcj2_avail;
}
break;
}
int r;
if (zip->codec == _7Z_COPY) {
- zip->uncompressed_buffer_bytes_remaining =
- zip->pack_stream_inbytes_reamining;
- zip->pack_stream_inbytes_reamining = 0;
- zip->folder_outbytes_reamining = 0;
+ if (__archive_read_ahead(a, 1, &bytes_avail) == NULL
+ || bytes_avail <= 0) {
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Truncated 7-Zip file body");
+ return (ARCHIVE_FATAL);
+ }
+ if (bytes_avail > zip->pack_stream_inbytes_reamining)
+ bytes_avail = zip->pack_stream_inbytes_reamining;
+ zip->pack_stream_inbytes_reamining -= bytes_avail;
+ if (bytes_avail > zip->folder_outbytes_reamining)
+ bytes_avail = zip->folder_outbytes_reamining;
+ zip->folder_outbytes_reamining -= bytes_avail;
+ zip->uncompressed_buffer_bytes_remaining = bytes_avail;
return (ARCHIVE_OK);
}
return (ARCHIVE_OK);
}
+static int
+seek_pack(struct archive_read *a)
+{
+ struct _7zip *zip = (struct _7zip *)a->format->data;
+ uint64_t pack_offset;
+
+ if (zip->pack_stream_remaining <= 0) {
+ archive_set_error(&(a->archive),
+ ARCHIVE_ERRNO_MISC, "Damaged 7-Zip archive");
+ return (ARCHIVE_FATAL);
+ }
+ zip->pack_stream_inbytes_reamining =
+ zip->si.pi.sizes[zip->pack_stream_index];
+ pack_offset = zip->si.pi.positions[zip->pack_stream_index];
+ if (zip->stream_offset != pack_offset) {
+ if (0 > __archive_read_seek(a, pack_offset + zip->seek_base,
+ SEEK_SET))
+ return (ARCHIVE_FATAL);
+ zip->stream_offset = pack_offset;
+ }
+ zip->pack_stream_index++;
+ zip->pack_stream_remaining--;
+ return (ARCHIVE_OK);
+}
+
static ssize_t
read_stream(struct archive_read *a, const void **buff, size_t size)
{
struct _7zip *zip = (struct _7zip *)a->format->data;
- uint64_t skip_bytes = 0, pack_offset;
+ uint64_t skip_bytes = 0;
int r;
if (zip->uncompressed_buffer_bytes_remaining == 0) {
/*
* Switch to next pack stream.
*/
- zip->pack_stream_inbytes_reamining =
- zip->si.pi.sizes[zip->pack_stream_index];
- pack_offset = zip->si.pi.positions[zip->pack_stream_index];
- if (zip->stream_offset != pack_offset) {
- if (0 > __archive_read_seek(a, pack_offset + zip->seek_base,
- SEEK_SET))
- return (ARCHIVE_FATAL);
- zip->stream_offset = pack_offset;
- }
- zip->pack_stream_index++;
- zip->pack_stream_remaining--;
+ r = seek_pack(a);
+ if (r < 0)
+ return (r);
/* Extract a new pack stream. */
r = extract_pack_stream(a);
struct _7z_coder *coder1, *coder2;
const char *cname = (header)?"archive header":"file content";
unsigned i;
- int r;
+ int r, found_bcj2 = 0;
+ /*
+ * Release the memory which the previous folder used for BCJ2.
+ */
+ for (i = 0; i < 3; i++) {
+ if (zip->sub_stream_buff[i] != NULL)
+ free(zip->sub_stream_buff[i]);
+ zip->sub_stream_buff[i] = NULL;
+ }
+
+ /*
+ * Initialize a stream reader.
+ */
zip->pack_stream_remaining = (unsigned)folder->numPackedStreams;
zip->pack_stream_index = (unsigned)folder->packIndex;
zip->folder_outbytes_reamining = folder_uncompressed_size(folder);
zip->uncompressed_buffer_bytes_remaining = 0;
+
/*
- * We have to initialize the decompressor for
- * the new folder's pack streams.
+ * Check coder types.
*/
for (i = 0; i < folder->numCoders; i++) {
if (folder->coders[i].codec == _7Z_CRYPTO) {
"but currently not supported", cname);
return (ARCHIVE_FATAL);
}
- if (folder->coders[i].codec == _7Z_X86_BCJ2) {
- archive_set_error(&(a->archive),
- ARCHIVE_ERRNO_MISC,
- "The %s is encoded with BCJ2, "
- "but currently not supported", cname);
- return (ARCHIVE_FATAL);
- }
+ if (folder->coders[i].codec == _7Z_X86_BCJ2)
+ found_bcj2++;
}
- if (folder->numCoders > 2) {
+ if (folder->numCoders > 2 && !found_bcj2) {
archive_set_error(&(a->archive),
ARCHIVE_ERRNO_MISC,
"The %s is encoded with many filters, "
coder2 = &(folder->coders[1]);
else
coder2 = NULL;
+
+ if (found_bcj2) {
+ /*
+ * Preparation to decode BCJ2.
+ * Decoding BCJ2 requires four sources. Those are at least,
+ * as far as I know, two types of the storage form.
+ */
+ const void *buff;
+ ssize_t bytes;
+ unsigned char *b[3] = {NULL, NULL, NULL};
+ size_t s[3] = {0, 0, 0};
+ int idx[3];
+ int stream_type = -1;
+
+ if (found_bcj2 && folder->numCoders == 4 &&
+ folder->coders[3].codec == _7Z_X86_BCJ2) {
+ /* Source type 1 made by 7zr */
+ if (zip->pack_stream_remaining == 4 &&
+ folder->numInStreams == 7 &&
+ folder->numOutStreams == 4) {
+ stream_type = 1;
+ coder1 = &(folder->coders[2]);
+ coder2 = &(folder->coders[3]);
+ zip->main_stream_bytes_remaining =
+ folder->unPackSize[2];
+ idx[0] = 1; idx[1] = 2; idx[2] = 0;
+ }
+ } else if (coder2 != NULL && coder2->codec == _7Z_X86_BCJ2) {
+ /* Source type 0 made by 7z */
+ if (zip->pack_stream_remaining == 4 &&
+ folder->numInStreams == 5 &&
+ folder->numOutStreams == 2) {
+ stream_type = 0;
+ zip->main_stream_bytes_remaining =
+ folder->unPackSize[0];
+ idx[0] = 0; idx[1] = 1; idx[2] = 2;
+ }
+ }
+ if (stream_type == -1 || found_bcj2 != 1) {
+ /* We got an unexpected form. */
+ archive_set_error(&(a->archive),
+ ARCHIVE_ERRNO_MISC,
+ "Unsupported form of BCJ2 streams");
+ return (ARCHIVE_FATAL);
+ }
+
+ /* Skip the main stream at this time. */
+ if ((r = seek_pack(a)) < 0)
+ return (r);
+ zip->pack_stream_bytes_unconsumed =
+ zip->pack_stream_inbytes_reamining;
+ read_consume(a);
+
+ /* Read following three sub streams. */
+ for (i = 0; i < 3; i++) {
+ static const struct _7z_coder coder_copy =
+ { 0, 0, 0, 0, NULL};
+ const struct _7z_coder *coder;
+
+ if ((r = seek_pack(a)) < 0)
+ return (r);
+
+ if (stream_type == 0) {
+ coder = &coder_copy;
+ zip->folder_outbytes_reamining =
+ zip->pack_stream_inbytes_reamining;
+ } else {
+ if (i == 1) {
+ coder = &(folder->coders[1]);
+ zip->folder_outbytes_reamining =
+ folder->unPackSize[1];
+ } else if (i == 2) {
+ coder = &(folder->coders[0]);
+ zip->folder_outbytes_reamining =
+ folder->unPackSize[0];
+ } else {
+ coder = &coder_copy;
+ zip->folder_outbytes_reamining =
+ zip->pack_stream_inbytes_reamining;
+ }
+ }
+
+ r = init_decompression(a, zip, coder, NULL);
+ if (r != ARCHIVE_OK)
+ return (ARCHIVE_FATAL);
+ while (zip->pack_stream_inbytes_reamining > 0) {
+ /* Extract a new pack stream. */
+ r = extract_pack_stream(a);
+ if (r < 0)
+ return (r);
+ bytes = get_uncompressed_data(a, &buff,
+ zip->uncompressed_buffer_bytes_remaining);
+ if (bytes < 0)
+ return ((int)bytes);
+ b[i] = realloc(b[i], bytes+s[i]);
+ if (b[i] == NULL) {
+ archive_set_error(&a->archive, ENOMEM,
+ "No memory for 7-Zip decompression");
+ return (ARCHIVE_FATAL);
+ }
+ memcpy(b[i]+s[i], buff, bytes);
+ s[i] += bytes;
+ if (zip->pack_stream_bytes_unconsumed)
+ read_consume(a);
+ }
+ }
+
+ /* Set the sub streams to the right place. */
+ for (i = 0; i < 3; i++) {
+ zip->sub_stream_buff[i] = b[idx[i]];
+ zip->sub_stream_size[i] = s[idx[i]];
+ zip->sub_stream_bytes_remaining[i] = s[idx[i]];
+ }
+
+ /* Allocate memory used for decoded main stream bytes. */
+ if (zip->tmp_stream_buff == NULL) {
+ zip->tmp_stream_buff_size = 32 * 1024;
+ zip->tmp_stream_buff =
+ malloc(zip->tmp_stream_buff_size);
+ if (zip->tmp_stream_buff == NULL) {
+ archive_set_error(&a->archive, ENOMEM,
+ "No memory for 7-Zip decompression");
+ return (ARCHIVE_FATAL);
+ }
+ }
+ zip->tmp_stream_bytes_avail = 0;
+ zip->tmp_stream_bytes_remaining = 0;
+ zip->odd_bcj_size = 0;
+ zip->bcj2_outPos = 0;
+
+ /*
+ * Reset a stream reader in order to read the main stream
+ * of BCJ2.
+ */
+ zip->pack_stream_remaining = 1;
+ zip->pack_stream_index = (unsigned)folder->packIndex;
+ zip->folder_outbytes_reamining =
+ folder_uncompressed_size(folder);
+ zip->uncompressed_buffer_bytes_remaining = 0;
+ }
+
+ /*
+ * Initialize the decompressor for the new folder's pack streams.
+ */
r = init_decompression(a, zip, coder1, coder2);
if (r != ARCHIVE_OK)
return (ARCHIVE_FATAL);
static const unsigned char kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3};
static size_t
-x86_Convert(unsigned char *data, size_t size, uint32_t ip, uint32_t *state)
+x86_Convert(uint8_t *data, size_t size, uint32_t ip, uint32_t *state)
{
size_t bufferPos = 0, prevPosT;
uint32_t prevMask = *state & 0x7;
prevPosT = (size_t)0 - 1;
for (;;) {
- unsigned char *p = data + bufferPos;
- unsigned char *limit = data + size - 4;
+ uint8_t *p = data + bufferPos;
+ uint8_t *limit = data + size - 4;
for (; p < limit; p++)
if ((*p & 0xFE) == 0xE8)
prevPosT = bufferPos;
if (Test86MSByte(p[4])) {
- uint32_t src = ((UInt32)p[4] << 24) |
- ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) |
- ((UInt32)p[1]);
+ uint32_t src = ((uint32_t)p[4] << 24) |
+ ((uint32_t)p[3] << 16) | ((uint32_t)p[2] << 8) |
+ ((uint32_t)p[1]);
uint32_t dest;
for (;;) {
- unsigned char b;
+ uint8_t b;
int index;
dest = src - (ip + (uint32_t)bufferPos);
if (prevMask == 0)
break;
index = kMaskToBitNumber[prevMask] * 8;
- b = (unsigned char)(dest >> (24 - index));
+ b = (uint8_t)(dest >> (24 - index));
if (!Test86MSByte(b))
break;
src = dest ^ ((1 << (32 - index)) - 1);
}
- p[4] = (unsigned char)(~(((dest >> 24) & 1) - 1));
- p[3] = (unsigned char)(dest >> 16);
- p[2] = (unsigned char)(dest >> 8);
- p[1] = (unsigned char)dest;
+ p[4] = (uint8_t)(~(((dest >> 24) & 1) - 1));
+ p[3] = (uint8_t)(dest >> 16);
+ p[2] = (uint8_t)(dest >> 8);
+ p[1] = (uint8_t)dest;
bufferPos += 5;
} else {
prevMask = ((prevMask << 1) & 0x7) | 1;
0 : ((prevMask << ((int)prevPosT - 1)) & 0x7));
return (bufferPos);
}
+
+/*
+ * Brought from LZMA SDK.
+ *
+ * Bcj2.c -- Converter for x86 code (BCJ2)
+ * 2008-10-04 : Igor Pavlov : Public domain
+ *
+ */
+
+#define SZ_ERROR_DATA ARCHIVE_FAILED
+
+#define IsJcc(b0, b1) ((b0) == 0x0F && ((b1) & 0xF0) == 0x80)
+#define IsJ(b0, b1) ((b1 & 0xFE) == 0xE8 || IsJcc(b0, b1))
+
+#define kNumTopBits 24
+#define kTopValue ((uint32_t)1 << kNumTopBits)
+
+#define kNumBitModelTotalBits 11
+#define kBitModelTotal (1 << kNumBitModelTotalBits)
+#define kNumMoveBits 5
+
+#define RC_READ_BYTE (*buffer++)
+#define RC_TEST { if (buffer == bufferLim) return SZ_ERROR_DATA; }
+#define RC_INIT2 zip->bcj2_code = 0; zip->bcj2_range = 0xFFFFFFFF; \
+ { int i; for (i = 0; i < 5; i++) { RC_TEST; zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; }}
+
+#define NORMALIZE if (zip->bcj2_range < kTopValue) { RC_TEST; zip->bcj2_range <<= 8; zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; }
+
+#define IF_BIT_0(p) ttt = *(p); bound = (zip->bcj2_range >> kNumBitModelTotalBits) * ttt; if (zip->bcj2_code < bound)
+#define UPDATE_0(p) zip->bcj2_range = bound; *(p) = (CProb)(ttt + ((kBitModelTotal - ttt) >> kNumMoveBits)); NORMALIZE;
+#define UPDATE_1(p) zip->bcj2_range -= bound; zip->bcj2_code -= bound; *(p) = (CProb)(ttt - (ttt >> kNumMoveBits)); NORMALIZE;
+
+ssize_t
+Bcj2_Decode(struct _7zip *zip, uint8_t *outBuf, size_t outSize)
+{
+ size_t inPos = 0, outPos = 0;
+ const uint8_t *buf0, *buf1, *buf2, *buf3;
+ size_t size0, size1, size2, size3;
+ const uint8_t *buffer, *bufferLim;
+ unsigned int i;
+
+ size0 = zip->tmp_stream_bytes_remaining;
+ buf0 = zip->tmp_stream_buff + zip->tmp_stream_bytes_avail - size0;
+ size1 = zip->sub_stream_bytes_remaining[0];
+ buf1 = zip->sub_stream_buff[0] + zip->sub_stream_size[0] - size1;
+ size2 = zip->sub_stream_bytes_remaining[1];
+ buf2 = zip->sub_stream_buff[1] + zip->sub_stream_size[1] - size2;
+ size3 = zip->sub_stream_bytes_remaining[2];
+ buf3 = zip->sub_stream_buff[2] + zip->sub_stream_size[2] - size3;
+
+ buffer = buf3;
+ bufferLim = buffer + size3;
+
+ if (zip->bcj_state == 0) {
+ /*
+ * Initialize.
+ */
+ zip->bcj2_prevByte = 0;
+ for (i = 0;
+ i < sizeof(zip->bcj2_p) / sizeof(zip->bcj2_p[0]); i++)
+ zip->bcj2_p[i] = kBitModelTotal >> 1;
+ RC_INIT2;
+ zip->bcj_state = 1;
+ }
+
+ /*
+ * Gather the odd bytes of a previous call.
+ */
+ for (i = 0; zip->odd_bcj_size > 0 && outPos < outSize; i++) {
+ outBuf[outPos++] = zip->odd_bcj[i];
+ zip->odd_bcj_size--;
+ }
+
+ if (outSize == 0) {
+ zip->bcj2_outPos += outPos;
+ return (outPos);
+ }
+
+ for (;;) {
+ uint8_t b;
+ CProb *prob;
+ uint32_t bound;
+ uint32_t ttt;
+
+ size_t limit = size0 - inPos;
+ if (outSize - outPos < limit)
+ limit = outSize - outPos;
+
+ if (zip->bcj_state == 1) {
+ while (limit != 0) {
+ uint8_t b = buf0[inPos];
+ outBuf[outPos++] = b;
+ if (IsJ(zip->bcj2_prevByte, b)) {
+ zip->bcj_state = 2;
+ break;
+ }
+ inPos++;
+ zip->bcj2_prevByte = b;
+ limit--;
+ }
+ }
+
+ if (limit == 0 || outPos == outSize)
+ break;
+ zip->bcj_state = 1;
+
+ b = buf0[inPos++];
+
+ if (b == 0xE8)
+ prob = zip->bcj2_p + zip->bcj2_prevByte;
+ else if (b == 0xE9)
+ prob = zip->bcj2_p + 256;
+ else
+ prob = zip->bcj2_p + 257;
+
+ IF_BIT_0(prob) {
+ UPDATE_0(prob)
+ zip->bcj2_prevByte = b;
+ } else {
+ uint32_t dest;
+ const uint8_t *v;
+ uint8_t out[4];
+
+ UPDATE_1(prob)
+ if (b == 0xE8) {
+ v = buf1;
+ if (size1 < 4)
+ return SZ_ERROR_DATA;
+ buf1 += 4;
+ size1 -= 4;
+ } else {
+ v = buf2;
+ if (size2 < 4)
+ return SZ_ERROR_DATA;
+ buf2 += 4;
+ size2 -= 4;
+ }
+ dest = (((uint32_t)v[0] << 24) |
+ ((uint32_t)v[1] << 16) |
+ ((uint32_t)v[2] << 8) |
+ ((uint32_t)v[3])) -
+ ((uint32_t)zip->bcj2_outPos + outPos + 4);
+ out[0] = (uint8_t)dest;
+ out[1] = (uint8_t)(dest >> 8);
+ out[2] = (uint8_t)(dest >> 16);
+ out[3] = zip->bcj2_prevByte = (uint8_t)(dest >> 24);
+
+ for (i = 0; i < 4 && outPos < outSize; i++)
+ outBuf[outPos++] = out[i];
+ if (i < 4) {
+ /*
+ * Save odd bytes, which we cannot add into
+ * the output buffer we have reached the
+ * end of the output buffer.
+ */
+ zip->odd_bcj_size = 4 -i;
+ for (; i < 4; i++) {
+ zip->odd_bcj[
+ i - 4 + zip->odd_bcj_size] = out[i];
+ }
+ break;
+ }
+ }
+ }
+ zip->tmp_stream_bytes_remaining -= inPos;
+ zip->sub_stream_bytes_remaining[0] = size1;
+ zip->sub_stream_bytes_remaining[1] = size2;
+ zip->sub_stream_bytes_remaining[2] = bufferLim - buffer;
+ zip->bcj2_outPos += outPos;
+
+ return ((ssize_t)outPos);
+}
+
#endif
{0, "test_read_format_7zip_bzip2.7z"},
{0, "test_read_format_7zip_bcj_lzma1.7z"},
{0, "test_read_format_7zip_bcj_lzma2.7z"},
+ {0, "test_read_format_7zip_bcj2_lzma1_1.7z"},
+ {0, "test_read_format_7zip_bcj2_lzma1_2.7z"},
+ {0, "test_read_format_7zip_bcj2_lzma2_1.7z"},
+ {0, "test_read_format_7zip_bcj2_lzma2_2.7z"},
{0, "test_read_format_7zip_copy.7z"},
{0, "test_read_format_7zip_deflate.7z"},
{0, "test_read_format_7zip_lzma1.7z"},
test_extract_all_files2("test_read_format_7zip_lzma1_lzma2.7z");
test_bcj_lzma("test_read_format_7zip_bcj_lzma1.7z");
test_bcj_lzma("test_read_format_7zip_bcj_lzma2.7z");
+ test_bcj_lzma("test_read_format_7zip_bcj2_lzma1_1.7z");
+ test_bcj_lzma("test_read_format_7zip_bcj2_lzma1_2.7z");
+ test_bcj_lzma("test_read_format_7zip_bcj2_lzma2_1.7z");
+ test_bcj_lzma("test_read_format_7zip_bcj2_lzma2_2.7z");
test_delta_lzma("test_read_format_7zip_delta_lzma1.7z");
test_delta_lzma("test_read_format_7zip_delta_lzma2.7z");
}
--- /dev/null
+begin 644 test_read_format_7zip_bcj2_lzma1_1.7z
+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
+M=I9FG8(OQJ,M*1GQ%+%`3@WP-A,.*:T(>!\C6X+H6[?]`JJ2%]6QX&(A=:Q\
+MUJIM+))_2U.!1"!5[<8U5AZH-@VYF$C.Q2VV^AM!1<O"_G/1_^CP.S-((2N\
+M)>1S(=G;M#;*N85A^C%4I*V9?@T_ZA@8&3#]%">19T>(+BE_$:EBI7YB!'N<
+M33*E_Y(CHT6.,H8#WG[0W6:79>/K<1M9FB6'B_X9\I";A;Q,[1^.O9_=(<*C
+M@3']U97@UWA/Y=W4=$_FR\SB61"7M3!)+>;]&ZW+0#4*85?-$^YUVT?:7N?Q
+M0_AF%#BW'`L\FJ:18?4X!NR._`[7GE?61$.FY\..[%QZ2^'F&W]Z(+7X<U#8
+M[_9Y@;.C6M5'C+8/IDP%BZ2VG%%9%I,5MRA'@U\P!MV`<A6!:Q>(0;R?[J'5
+MN2]KY%$HDA^S"*VK;TQ,Z$8K3A-:)>@'K`'FO%ZX*KRLKG+P3:,,.V"@QC!S
+M^DN*76M228@B^B&U20&!KB-8<&L<PF$WFXZ+'R_8V8>;ZL]W4H#38W]M7^72
+M.W"!1W,5VV%8LV>:KDE:%9F)*ML^_&]6-_O?)H;R!Z%6NLWK$H/0KXUT!!I(
+M.GD=DD,'GWUVF>1DX9:%G"1^#<[VJE5@!B@P"5:X1(?!J2A+`6"B```58```
+M6%```!20```3Z```$^@```_D```HH```$U@``!&(```0B```2?```!*H```2
+MJ```%!@``!08```3:```%"@``!0H```4*```$[@``!%X```2*```$[@``!*8
+M```16```%"@``!.X```0"```$[@``!#8```4&```$1@``!*H```3>```$2@`
+M`!'(```4&```$.@``!*X```1R```$-@``!*H```4&```$V@``!)(```3N```
+M$J@``!08```2J```%!@``!*H```4&```$K@``!*H```4&```$X@``!.(```3
+MV```$R@``!)X```98```$N@``#?````0&```$G@``!E@```1V```$N@``!)H
+M```1>```$B@``!(H```WP```$!@``!#(```32```$X@``!.(```3J```$Y@`
+M`!"(```12```$@@``$FP```0B```$#@``!"(```3F```$(@``!+(```2V```
+M$M@``!"(```RT```)@```"8````36```$S@``!"(```3"```$\@``!18```4
+M6```%%@``!18```46```$#@``!18```2.```$C@``!(X```Q\```$M@``!0(
+M```0F```$&@``!08```2*```$B@``!"X```2.```$+@``!(X```2.```-#``
+M`#0P```T,```-#```#0P```T,```-#```#0P```T,```-#```#0P```1N```
+M$6@``!#X```0>```$$@``!+X```3V```$,@``!-(```0R```$T@``!#(```3
+M2```$T@``!-(```32```$,@``!#(```0R```$,@``!-(```U$```-\```#A@
+M```WP```,?```%;````2B```$H@``#N````0R```$T@``#N````0R```$T@`
+M`!#(```32```$H@``!&8```2N```$H@``!08```[@```$,@``!#(```32```
+M$T@``!(8```2J```$:@``!0X```1.```$_@``!*(```0J```$H@``#9@```W
+MP```,?```!*(```2J```$H@``#9@```U$```$H@``!*(``!6P```$H@``!*(
+M```0R```.&```!*H```42```$H@``#?````2J```$H@``#9@```V8```$J@`
+M`!*H```2:```$7@``!`H```32```$_@``!*X```2:```$K@``!&H```2:```
+M$K@``!/8```3&```$U@``!)8```06```$0@``!)8```3V```$E@``!!8```0
+MR```$T@``!)8```1"```$,@``!#(```1"```$T@``!-(```0R```$T@``!/8
+M```26```$%@``!#(```32```$0@``!)8```2B```$0@``!#(```32```$]@`
+M`!)8```06```$,@``!#(```0R```$,@``!#(```32```$T@``!-(```32```
+M%!@``!-(```1"```$E@``!'H```1"```$,@``!#(```32```$T@``!/8```5
+M,```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X
+M```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@`
+M``_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```
+M#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/
+M^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X
+M```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@`
+M``_X```/^```#_@``!'X```5D```$?@``!9````1^```%M```!'X```78```
+M$?@``!?P```1^```$?@``!B@```A1```(5L``"#]```=7@``'6H``!YQ```>
+M4```'5```!U0```>B@``'S$``!^B```EJ0``'LT``![-```?!0``&H$``"$;
+M```CMP``)?0``!JD```=5P``&J0``!JD```<````'/$``!S^```<_@``)>``
+M`"7@```<5P``'%<``"2R```@R0``''```!QP```@/P``'^D``!XR```=N0``
+M'C(``!FR```EJ0``)<<``"6]```DU```)1H``!HQ```=ZP``(#4``"2-```C
+M00``(Y@``")U```A\@``(:,``"B"```G=P``*`@``"=H```GP```)X```"A&
+M```GV```*"P``"A9```F@```)H```":2```H;@``)H```":````F@```)Q``
+M`"<0```F<@``)H```"9R```F^0``)H```":^```F^0``*8L``#$P```OOP``
+M+#H``#"!```K[0``+`<``#`3```P5```,#P``"_H```P8P``*QP``"L2```K
+M'```*?\``"HF```I8P``*6,``"EC```I8P``*6,``"EC```I8P``*6,``"EC
+M```I8P``*6,``"EC```I8P``*6,``"EC```I8P``*6,``"EC```I8P``*6,`
+M`"EC```I8P``*6,``"EC```I8P``*6,``"EC```I8P``*6,``"EC```I8P``
+M*6,``"EC```I8P``*6,``"EC```IVP``*=L``"G;```KHP``,6T``"NM```K
+M0@``,4P``"NM```KP```*ZT``"NM```KP```,<L``"HF```J)@``*B8``"HP
+M```I7@``*ZT``"NM```KK0``*ZT``"NM```KK0``,/@``#0D```ST0``-!P`
+M`#,I```S(P``,RD``#+D```TX```-$P``#7S```UN```-<L``#9````V'@``
+M-;0``#6T```W10``-R```#>Z```VF```-I@``#:8```V@0``-I@``#:8```V
+MF```-I@``%$0``!+(```3H```#ES```Y)@``.?D``#I*```[4@``.:@``#HJ
+M```YQ```.+(``#KB```ZP@``.OX``#IF```[-@``.J(``#L:```Y%0``.9<`
+M`#GH```Y8@``.-H``#R(```[LP``.ZH``$`\``!`*@``/^L``#_K```_N@``
+M/X0``#]R```_A```/X0``#YT```^K0``/DT``#XT```^-```/+```#UP``!!
+M5```09(``$"@``!!$```11P``$4<``!$]P``1J@``$95``!#5```0U0``$-4
+M``!(>P``1_4``$@U``!)!@``21H``$CC``!(Q0``1C```$8(``!%<```17``
+M`$>P``!%WP``1^4``$?3``!%]```1O```$<```!&T```2,X``$(```!)I0``
+M0?4``$>```!$4P``1((``$2"``!#M```0Z<``$(N``!"(```1/<``$2U``!(
+M1P``2(X``$3)``!%N```1$8``$1U``!$=0``0L$``$-4``!#`P``1S```$-4
+M``!"@```1,D``$-,``!$]P``0U0``$-4``!#`P``0P,``$@U``!(-0``0U0`
+M`$K]``!-I0``3.0``$UO``!-1```3*,``$R!``!-\0``3=\``$MH``!,`0``
+M3`H``$U5``!-_@``2V@``$W%``!.'```2V@``$O)``!,T@``3CH``$Y4``!.
+M<@``31,``$QP``!,70``3,@``$S2``!-"0``31,``$V>``!-E```39X``%"%
+M``!0:0``4`(``$_4``!.R```4+,``%"A``!.R```3S<``$]```!0P```4-\`
+M`$[(``!/R0``3[8``%!6``!030``4%8``%44``!2L@``56D``%3?``!4WP``
+M5-\``%5&``!60```5B@``%44``!5=@``45@``%4T``!3J```5(```%/A``!4
+M8```5!```%2@``!40```5,```%*'``!2T```4OX``%,V``!3;@``4Y8``%,@
+M``!3*0``4N<``%+Q``!36```4V$``%.-``!3E@``5:```%+$``!2E```5KH`
+M`%()``!2$@``4;T``%%8``!4^0``5F0``%9^``!6G```4H<``%*'``!2;@``
+M5>P``%7B``!5[```5A,``%8<``!7H@``5\```%<&``!7!@``5T```%=``'__
+M[(*_<*GBTO8J#[&TS@MGB4R]0=<':N.(W\G9G;.:/7*.,11&`00&``0)I/&$
+M;(>X)P`'"P$``B,#`0$%70```0`4`P,!&P0!`0```@,$#,"<7L#`:@`("@$]
+M?9*5```%`1$/`'@`.``V`&4`>`!E````%`H!```M0RMQLYT!%08!`"$`````
+!````
+`
+end
--- /dev/null
+begin 644 test_read_format_7zip_bcj2_lzma1_2.7z
+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
+>90!X`&4````4"@$``"U#*W&SG0$5!@$`(0``````
+`
+end
--- /dev/null
+begin 644 test_read_format_7zip_bcj2_lzma2_1.7z
+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
+M2U/W5(E==I9FG8(OQJ,M*1GQ%+%`3@WP-A,.*:T(>!\C6X+H6[?]`JJ2%]6Q
+MX&(A=:Q\UJIM+))_2U.!1"!5[<8U5AZH-@VYF$C.Q2VV^AM!1<O"_G/1_^CP
+M.S-((2N\)>1S(=G;M#;*N85A^C%4I*V9?@T_ZA@8&3#]%">19T>(+BE_$:EB
+MI7YB!'N<33*E_Y(CHT6.,H8#WG[0W6:79>/K<1M9FB6'B_X9\I";A;Q,[1^.
+MO9_=(<*C@3']U97@UWA/Y=W4=$_FR\SB61"7M3!)+>;]&ZW+0#4*85?-$^YU
+MVT?:7N?Q0_AF%#BW'`L\FJ:18?4X!NR._`[7GE?61$.FY\..[%QZ2^'F&W]Z
+M(+7X<U#8[_9Y@;.C6M5'C+8/IDP%BZ2VG%%9%I,5MRA'@U\P!MV`<A6!:Q>(
+M0;R?[J'5N2]KY%$HDA^S"*VK;TQ,Z$8K3A-:)>@'K`'FO%ZX*KRLKG+P3:,,
+M.V"@QC!S^DN*76M228@B^B&U20&!KB-8<&L<PF$WFXZ+'R_8V8>;ZL]W4H#3
+M8W]M7^72.W"!1W,5VV%8LV>:KDE:%9F)*ML^_&]6-_O?)H;R!Z%6NLWK$H/0
+MKXUT!!I(.GD=DD,'GWUVF>1DX9:%G"1^#<[VJE5@!B@P"5:X1(?!J2A+`6"B
+M````%6```%A0```4D```$^@``!/H```/Y```**```!-8```1B```$(@``$GP
+M```2J```$J@``!08```4&```$V@``!0H```4*```%"@``!.X```1>```$B@`
+M`!.X```2F```$5@``!0H```3N```$`@``!.X```0V```%!@``!$8```2J```
+M$W@``!$H```1R```%!@``!#H```2N```$<@``!#8```2J```%!@``!-H```2
+M2```$[@``!*H```4&```$J@``!08```2J```%!@``!*X```2J```%!@``!.(
+M```3B```$]@``!,H```2>```&6```!+H```WP```$!@``!)X```98```$=@`
+M`!+H```2:```$7@``!(H```2*```-\```!`8```0R```$T@``!.(```3B```
+M$Z@``!.8```0B```$4@``!((``!)L```$(@``!`X```0B```$Y@``!"(```2
+MR```$M@``!+8```0B```,M```"8````F````$U@``!,X```0B```$P@``!/(
+M```46```%%@``!18```46```%%@``!`X```46```$C@``!(X```2.```,?``
+M`!+8```4"```$)@``!!H```4&```$B@``!(H```0N```$C@``!"X```2.```
+M$C@``#0P```T,```-#```#0P```T,```-#```#0P```T,```-#```#0P```T
+M,```$;@``!%H```0^```$'@``!!(```2^```$]@``!#(```32```$,@``!-(
+M```0R```$T@``!-(```32```$T@``!#(```0R```$,@``!#(```32```-1``
+M`#?````X8```-\```#'P``!6P```$H@``!*(```[@```$,@``!-(```[@```
+M$,@``!-(```0R```$T@``!*(```1F```$K@``!*(```4&```.X```!#(```0
+MR```$T@``!-(```2&```$J@``!&H```4.```$3@``!/X```2B```$*@``!*(
+M```V8```-\```#'P```2B```$J@``!*(```V8```-1```!*(```2B```5L``
+M`!*(```2B```$,@``#A@```2J```%$@``!*(```WP```$J@``!*(```V8```
+M-F```!*H```2J```$F@``!%X```0*```$T@``!/X```2N```$F@``!*X```1
+MJ```$F@``!*X```3V```$Q@``!-8```26```$%@``!$(```26```$]@``!)8
+M```06```$,@``!-(```26```$0@``!#(```0R```$0@``!-(```32```$,@`
+M`!-(```3V```$E@``!!8```0R```$T@``!$(```26```$H@``!$(```0R```
+M$T@``!/8```26```$%@``!#(```0R```$,@``!#(```0R```$T@``!-(```3
+M2```$T@``!08```32```$0@``!)8```1Z```$0@``!#(```0R```$T@``!-(
+M```3V```%3````_X```/^```#_@```_X```/^```#_@```_X```/^```#_@`
+M``_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```
+M#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/
+M^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X
+M```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```#_@`
+M``_X```/^```#_@```_X```/^```#_@```_X```/^```#_@```_X```/^```
+M#_@```_X```/^```#_@```_X```1^```%9```!'X```60```$?@``!;0```1
+M^```%V```!'X```7\```$?@``!'X```8H```(40``"%;```@_0``'5X``!UJ
+M```><0``'E```!U0```=4```'HH``!\Q```?H@``):D``![-```>S0``'P4`
+M`!J!```A&P``([<``"7T```:I```'5<``!JD```:I```'````!SQ```<_@``
+M'/X``"7@```EX```'%<``!Q7```DL@``(,D``!QP```<<```(#\``!_I```>
+M,@``';D``!XR```9L@``):D``"7'```EO0``)-0``"4:```:,0``'>L``"`U
+M```DC0``(T$``".8```B=0``(?(``"&C```H@@``)W<``"@(```G:```)\``
+M`">````H1@``)]@``"@L```H60``)H```":````FD@``*&X``":````F@```
+M)H```"<0```G$```)G(``":````F<@``)OD``":````FO@``)OD``"F+```Q
+M,```+[\``"PZ```P@0``*^T``"P'```P$P``,%0``#`\```OZ```,&,``"L<
+M```K$@``*QP``"G_```J)@``*6,``"EC```I8P``*6,``"EC```I8P``*6,`
+M`"EC```I8P``*6,``"EC```I8P``*6,``"EC```I8P``*6,``"EC```I8P``
+M*6,``"EC```I8P``*6,``"EC```I8P``*6,``"EC```I8P``*6,``"EC```I
+M8P``*6,``"EC```I8P``*6,``"EC```I8P``*=L``"G;```IVP``*Z,``#%M
+M```KK0``*T(``#%,```KK0``*\```"NM```KK0``*\```#'+```J)@``*B8`
+M`"HF```J,```*5X``"NM```KK0``*ZT``"NM```KK0``*ZT``##X```T)```
+M,]$``#0<```S*0``,R,``#,I```RY```-.```#1,```U\P``-;@``#7+```V
+M0```-AX``#6T```UM```-T4``#<@```WN@``-I@``#:8```VF```-H$``#:8
+M```VF```-I@``#:8``!1$```2R```$Z````Y<P``.28``#GY```Z2@``.U(`
+M`#FH```Z*@``.<0``#BR```ZX@``.L(``#K^```Z9@``.S8``#JB```[&@``
+M.14``#F7```YZ```.6(``#C:```\B```.[,``#NJ``!`/```0"H``#_K```_
+MZP``/[H``#^$```_<@``/X0``#^$```^=```/JT``#Y-```^-```/C0``#RP
+M```]<```050``$&2``!`H```01```$4<``!%'```1/<``$:H``!&50``0U0`
+M`$-4``!#5```2'L``$?U``!(-0``208``$D:``!(XP``2,4``$8P``!&"```
+M17```$5P``!'L```1=\``$?E``!'TP``1?0``$;P``!'````1M```$C.``!"
+M````2:4``$'U``!'@```1%,``$2"``!$@@``0[0``$.G``!"+@``0B```$3W
+M``!$M0``2$<``$B.``!$R0``1;@``$1&``!$=0``1'4``$+!``!#5```0P,`
+M`$<P``!#5```0H```$3)``!#3```1/<``$-4``!#5```0P,``$,#``!(-0``
+M2#4``$-4``!*_0``3:4``$SD``!-;P``340``$RC``!,@0``3?$``$W?``!+
+M:```3`$``$P*``!-50``3?X``$MH``!-Q0``3AP``$MH``!+R0``3-(``$XZ
+M``!.5```3G(``$T3``!,<```3%T``$S(``!,T@``30D``$T3``!-G@``390`
+M`$V>``!0A0``4&D``%`"``!/U```3L@``%"S``!0H0``3L@``$\W``!/0```
+M4,```%#?``!.R```3\D``$^V``!05@``4$T``%!6``!5%```4K(``%5I``!4
+MWP``5-\``%3?``!51@``5D```%8H``!5%```578``%%8``!5-```4Z@``%2`
+M``!3X0``5&```%00``!4H```5$```%3```!2AP``4M```%+^``!3-@``4VX`
+M`%.6``!3(```4RD``%+G``!2\0``4U@``%-A``!3C0``4Y8``%6@``!2Q```
+M4I0``%:Z``!2"0``4A(``%&]``!16```5/D``%9D``!6?@``5IP``%*'``!2
+MAP``4FX``%7L``!5X@``5>P``%83``!6'```5Z(``%?```!7!@``5P8``%=`
+M``!70`!__^R"OW"IXM+V*@^QM,X+9XE,O4'7!VKCB-_)V9VSFCURCC$41@$$
+M!@`$":3XA&R'N"<`!PL!``(A(0$(%`,#`1L$`0$```(#!`S`G%[`P&H`"`H!
+M/7V2E0``!0$1#P!X`#@`-@!E`'@`90```!0*`0``+4,K<;.=`14&`0`A````
+"````
+`
+end
--- /dev/null
+begin 644 test_read_format_7zip_bcj2_lzma2_2.7z
+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
+?`&4`>`!E````%`H!```M0RMQLYT!%08!`"$`````````
+`
+end