block_encoder.c | block_encoder.c | |||
---|---|---|---|---|
skipping to change at line 46 | skipping to change at line 46 | |||
lzma_vli uncompressed_size; | lzma_vli uncompressed_size; | |||
/// Position in the Check field | /// Position in the Check field | |||
size_t pos; | size_t pos; | |||
/// Check of the uncompressed data | /// Check of the uncompressed data | |||
lzma_check_state check; | lzma_check_state check; | |||
}; | }; | |||
static lzma_ret | static lzma_ret | |||
block_encode(lzma_coder *coder, lzma_allocator *allocator, | block_encode(lzma_coder *coder, const lzma_allocator *allocator, | |||
const uint8_t *restrict in, size_t *restrict in_pos, | const uint8_t *restrict in, size_t *restrict in_pos, | |||
size_t in_size, uint8_t *restrict out, | size_t in_size, uint8_t *restrict out, | |||
size_t *restrict out_pos, size_t out_size, lzma_action actio n) | size_t *restrict out_pos, size_t out_size, lzma_action actio n) | |||
{ | { | |||
// Check that our amount of input stays in proper limits. | // Check that our amount of input stays in proper limits. | |||
if (LZMA_VLI_MAX - coder->uncompressed_size < in_size - *in_pos) | if (LZMA_VLI_MAX - coder->uncompressed_size < in_size - *in_pos) | |||
return LZMA_DATA_ERROR; | return LZMA_DATA_ERROR; | |||
switch (coder->sequence) { | switch (coder->sequence) { | |||
case SEQ_CODE: { | case SEQ_CODE: { | |||
skipping to change at line 134 | skipping to change at line 134 | |||
memcpy(coder->block->raw_check, coder->check.buffer.u8, | memcpy(coder->block->raw_check, coder->check.buffer.u8, | |||
check_size); | check_size); | |||
return LZMA_STREAM_END; | return LZMA_STREAM_END; | |||
} | } | |||
} | } | |||
return LZMA_PROG_ERROR; | return LZMA_PROG_ERROR; | |||
} | } | |||
static void | static void | |||
block_encoder_end(lzma_coder *coder, lzma_allocator *allocator) | block_encoder_end(lzma_coder *coder, const lzma_allocator *allocator) | |||
{ | { | |||
lzma_next_end(&coder->next, allocator); | lzma_next_end(&coder->next, allocator); | |||
lzma_free(coder, allocator); | lzma_free(coder, allocator); | |||
return; | return; | |||
} | } | |||
static lzma_ret | static lzma_ret | |||
block_encoder_update(lzma_coder *coder, lzma_allocator *allocator, | block_encoder_update(lzma_coder *coder, const lzma_allocator *allocator, | |||
const lzma_filter *filters lzma_attribute((__unused__)), | const lzma_filter *filters lzma_attribute((__unused__)), | |||
const lzma_filter *reversed_filters) | const lzma_filter *reversed_filters) | |||
{ | { | |||
if (coder->sequence != SEQ_CODE) | if (coder->sequence != SEQ_CODE) | |||
return LZMA_PROG_ERROR; | return LZMA_PROG_ERROR; | |||
return lzma_next_filter_update( | return lzma_next_filter_update( | |||
&coder->next, allocator, reversed_filters); | &coder->next, allocator, reversed_filters); | |||
} | } | |||
extern lzma_ret | extern lzma_ret | |||
lzma_block_encoder_init(lzma_next_coder *next, lzma_allocator *allocator, | lzma_block_encoder_init(lzma_next_coder *next, const lzma_allocator *alloca tor, | |||
lzma_block *block) | lzma_block *block) | |||
{ | { | |||
lzma_next_coder_init(&lzma_block_encoder_init, next, allocator); | lzma_next_coder_init(&lzma_block_encoder_init, next, allocator); | |||
if (block == NULL) | if (block == NULL) | |||
return LZMA_PROG_ERROR; | return LZMA_PROG_ERROR; | |||
// The contents of the structure may depend on the version so | // The contents of the structure may depend on the version so | |||
// check the version first. | // check the version first. | |||
if (block->version != 0) | if (block->version > 1) | |||
return LZMA_OPTIONS_ERROR; | return LZMA_OPTIONS_ERROR; | |||
// If the Check ID is not supported, we cannot calculate the check a nd | // If the Check ID is not supported, we cannot calculate the check a nd | |||
// thus not create a proper Block. | // thus not create a proper Block. | |||
if ((unsigned int)(block->check) > LZMA_CHECK_ID_MAX) | if ((unsigned int)(block->check) > LZMA_CHECK_ID_MAX) | |||
return LZMA_PROG_ERROR; | return LZMA_PROG_ERROR; | |||
if (!lzma_check_is_supported(block->check)) | if (!lzma_check_is_supported(block->check)) | |||
return LZMA_UNSUPPORTED_CHECK; | return LZMA_UNSUPPORTED_CHECK; | |||
End of changes. 5 change blocks. | ||||
5 lines changed or deleted | 5 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |