lzma_filter filters[LZMA_BLOCK_FILTERS_MAX + 1];
filters[0].id = LZMA_FILTER_LZMA2;
filters[0].options = (void *)&lzma_preset_lzma[0];
- filters[1].id = LZMA_VLI_VALUE_UNKNOWN;
+ filters[1].id = LZMA_VLI_UNKNOWN;
// Init
if (lzma_stream_encoder(&strm, filters, LZMA_CHECK_SHA256) != LZMA_OK) {
.options = (void *)(&lzma_preset_lzma[0])
},
{
- .id = LZMA_VLI_VALUE_UNKNOWN
+ .id = LZMA_VLI_UNKNOWN
}
};
lzma_filter filters[LZMA_BLOCK_FILTERS_MAX + 1];
filters[0].id = LZMA_FILTER_LZMA2;
filters[0].options = &opt_lzma;
- filters[1].id = LZMA_VLI_VALUE_UNKNOWN;
+ filters[1].id = LZMA_VLI_UNKNOWN;
// Init
if (lzma_stream_encoder(&strm, filters, LZMA_CHECK_CRC32) != LZMA_OK) {
* encoder which tries to align the Compressed Data field optimally.
*
* \param filters Pointer to lzma_filter array, whose last
- * member must have .id = LZMA_VLI_VALUE_UNKNOWN.
+ * member must have .id = LZMA_VLI_UNKNOWN.
* \param guess The value to return if the alignment of the output
* is the same as the alignment of the input data.
* If you want to always detect this special case,
* format.
*/
- LZMA_HEADER_ERROR = 8,
+ LZMA_OPTIONS_ERROR = 8,
/**<
* \brief Invalid or unsupported options
*
*
* Only some filters support LZMA_SYNC_FLUSH. Trying to use
* LZMA_SYNC_FLUSH with filters that don't support it will
- * make lzma_code() return LZMA_HEADER_ERROR. For example,
+ * make lzma_code() return LZMA_OPTIONS_ERROR. For example,
* LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does.
*
* Using LZMA_SYNC_FLUSH very often can dramatically reduce
/**
* \brief Uncompressed Size in bytes
*
- * Encoder: If this value is not LZMA_VLI_VALUE_UNKNOWN, it is stored
+ * Encoder: If this value is not LZMA_VLI_UNKNOWN, it is stored
* to the Uncompressed Size field in the Block Header. The real
* uncompressed size of the data being compressed must match
- * the Uncompressed Size or LZMA_HEADER_ERROR is returned.
+ * the Uncompressed Size or LZMA_OPTIONS_ERROR is returned.
*
* If Uncompressed Size is unknown, End of Payload Marker must
- * be used. If uncompressed_size == LZMA_VLI_VALUE_UNKNOWN and
- * has_eopm == 0, LZMA_HEADER_ERROR will be returned.
+ * be used. If uncompressed_size == LZMA_VLI_UNKNOWN and
+ * has_eopm == 0, LZMA_OPTIONS_ERROR will be returned.
*
- * Decoder: If this value is not LZMA_VLI_VALUE_UNKNOWN, it is
+ * Decoder: If this value is not LZMA_VLI_UNKNOWN, it is
* compared to the real Uncompressed Size. If they do not match,
- * LZMA_HEADER_ERROR is returned.
+ * LZMA_OPTIONS_ERROR is returned.
*
* Read by:
* - lzma_block_header_size()
* \brief Array of filters
*
* There can be 1-4 filters. The end of the array is marked with
- * .id = LZMA_VLI_VALUE_UNKNOWN.
+ * .id = LZMA_VLI_UNKNOWN.
*
* Read by:
* - lzma_block_header_size()
* Written by:
* - lzma_block_header_decode(): Note that this does NOT free()
* the old filter options structures. All unused filters[] will
- * have .id == LZMA_VLI_VALUE_UNKNOWN and .options == NULL. If
+ * have .id == LZMA_VLI_UNKNOWN and .options == NULL. If
* decoding fails, all filters[] are guaranteed to be
- * LZMA_VLI_VALUE_UNKNOWN and NULL.
+ * LZMA_VLI_UNKNOWN and NULL.
*
* \note Because of the array is terminated with
- * .id = LZMA_VLI_VALUE_UNKNOWN, the actual array must
+ * .id = LZMA_VLI_UNKNOWN, the actual array must
* have LZMA_BLOCK_FILTERS_MAX + 1 members or the Block
* Header decoder will overflow the buffer.
*/
*
* \return - LZMA_OK: Size calculated successfully and stored to
* options->header_size.
- * - LZMA_HEADER_ERROR: Unsupported filters or filter options.
+ * - LZMA_OPTIONS_ERROR: Unsupported filters or filter options.
* - LZMA_PROG_ERROR: Invalid options
*
* \note This doesn't check that all the options are valid i.e. this
*
* \return - LZMA_OK: Encoding was successful. options->header_size
* bytes were written to output buffer.
- * - LZMA_HEADER_ERROR: Invalid or unsupported options.
+ * - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
* - LZMA_PROG_ERROR
*/
extern lzma_ret lzma_block_header_encode(
*
* \return - LZMA_OK: Decoding was successful. options->header_size
* bytes were written to output buffer.
- * - LZMA_HEADER_ERROR: Invalid or unsupported options.
+ * - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
* - LZMA_PROG_ERROR
*/
extern lzma_ret lzma_block_header_decode(lzma_block *options,
*
* \return - LZMA_OK: All good, continue with lzma_code().
* - LZMA_MEM_ERROR
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_DATA_ERROR: Limits (total_limit and uncompressed_limit)
* have been reached already.
* - LZMA_UNSUPPORTED_CHECK: options->check specfies a Check
* \note If liblzma is built without encoder support, or with some
* filters disabled, some of the compression levels may be
* unsupported. In that case, the initialization functions
- * will return LZMA_HEADER_ERROR.
+ * will return LZMA_OPTIONS_ERROR.
*/
typedef enum {
LZMA_EASY_COPY = 0,
* encode your data.
* - LZMA_MEM_ERROR: Memory allocation failed. All memory
* previously allocated for *strm is now freed.
- * - LZMA_HEADER_ERROR: The given compression level is not
+ * - LZMA_OPTIONS_ERROR: The given compression level is not
* supported by this build of liblzma.
*
* If initialization succeeds, use lzma_code() to do the actual encoding.
*
* \param strm Pointer to properly prepared lzma_stream
* \param filters Array of filters. This must be terminated with
- * filters[n].id = LZMA_VLI_VALUE_UNKNOWN. There must
+ * filters[n].id = LZMA_VLI_UNKNOWN. There must
* be 1-4 filters, but there are restrictions on how
* multiple filters can be combined. FIXME Tell where
* to find more information.
*
* \return - LZMA_OK: Initialization was successful.
* - LZMA_MEM_ERROR
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
extern lzma_ret lzma_stream_encoder(lzma_stream *strm,
*
* \return - LZMA_OK: Initialization was successful.
* - LZMA_MEM_ERROR: Cannot allocate memory.
- * - LZMA_HEADER_ERROR: Unsupported flags
+ * - LZMA_OPTIONS_ERROR: Unsupported flags
*/
extern lzma_ret lzma_stream_decoder(
lzma_stream *strm, uint64_t memlimit, uint32_t flags)
*
* \return - LZMA_OK: Initialization was successful.
* - LZMA_MEM_ERROR: Cannot allocate memory.
- * - LZMA_HEADER_ERROR: Unsupported flags
+ * - LZMA_OPTIONS_ERROR: Unsupported flags
*/
extern lzma_ret lzma_auto_decoder(
lzma_stream *strm, uint64_t memlimit, uint32_t flags)
*
* Use constants whose name begin with `LZMA_FILTER_' to specify
* different filters. In an array of lzma_option_filter structures,
- * use LZMA_VLI_VALUE_UNKNOWN to indicate end of filters.
+ * use LZMA_VLI_UNKNOWN to indicate end of filters.
*/
lzma_vli id;
* \brief Pointer to filter-specific options structure
*
* If the filter doesn't need options, set this to NULL. If id is
- * set to LZMA_VLI_VALUE_UNKNOWN, options is ignored, and thus
+ * set to LZMA_VLI_UNKNOWN, options is ignored, and thus
* doesn't need be initialized.
*
* Some filters support changing the options in the middle of
* \brief Calculate rough memory requirements for raw encoder
*
* \param filters Array of filters terminated with
- * .id == LZMA_VLI_VALUE_UNKNOWN.
+ * .id == LZMA_VLI_UNKNOWN.
*
* \return Rough number of bytes required for the given filter chain
* when encoding.
* \brief Calculate rough memory requirements for raw decoder
*
* \param filters Array of filters terminated with
- * .id == LZMA_VLI_VALUE_UNKNOWN.
+ * .id == LZMA_VLI_UNKNOWN.
*
* \return Rough number of bytes required for the given filter chain
* when decoding.
* \param strm Pointer to properly prepared lzma_stream
* \param options Array of lzma_filter structures.
* The end of the array must be marked with
- * .id = LZMA_VLI_VALUE_UNKNOWN. The minimum
+ * .id = LZMA_VLI_UNKNOWN. The minimum
* number of filters is one and the maximum is four.
*
* The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the
*
* \return - LZMA_OK
* - LZMA_MEM_ERROR
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
extern lzma_ret lzma_raw_encoder(
*
* \return - LZMA_OK
* - LZMA_MEM_ERROR
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
extern lzma_ret lzma_raw_decoder(
* vary depending on the options)
*
* \return - LZMA_OK
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*
* \note This function validates the Filter ID, but does not
* necessarily validate the options. Thus, it is possible
* that this returns LZMA_OK while the following call to
- * lzma_properties_encode() returns LZMA_HEADER_ERROR.
+ * lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
*/
extern lzma_ret lzma_properties_size(
uint32_t *size, const lzma_filter *filter);
* lzma_properties_size().
*
* \return - LZMA_OK
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*
* \note Even this function won't validate more options than actually
* \param props Input buffer containing the properties.
* \param props_size Size of the properties. This must be the exact
* size; giving too much or too little input will
- * return LZMA_HEADER_ERROR.
+ * return LZMA_OPTIONS_ERROR.
*
* \return - LZMA_OK
- * - LZMA_HEADER_ERROR
+ * - LZMA_OPTIONS_ERROR
* - LZMA_MEM_ERROR
*/
extern lzma_ret lzma_properties_decode(
* \return - LZMA_OK: *size set successfully. Note that this doesn't
* guarantee that options->options is valid, thus
* lzma_filter_flags_encode() may still fail.
- * - LZMA_HEADER_ERROR: Unknown Filter ID or unsupported options.
+ * - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
* - LZMA_PROG_ERROR: Invalid options
*
* \note If you need to calculate size of List of Filter Flags,
* \param options Filter options to be encoded
*
* \return - LZMA_OK: Encoding was successful.
- * - LZMA_HEADER_ERROR: Invalid or unsupported options.
+ * - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
* - LZMA_PROG_ERROR: Invalid options or not enough output
* buffer space (you should have checked it with
* lzma_filter_flags_size()).
* \param index Pointer to a lzma_index structure
* \param total_size Total Size of a Block
* \param uncompressed_size Uncompressed Size of a Block, or
- * LZMA_VLI_VALUE_UNKNOWN to indicate padding.
+ * LZMA_VLI_UNKNOWN to indicate padding.
*
* Appending a new Record does not affect the read position.
*
* \note It's possible that this match finder gets
* removed in future. The definition will stay
* in this header, but liblzma may return
- * LZMA_HEADER_ERROR if it is specified (just
+ * LZMA_OPTIONS_ERROR if it is specified (just
* like it would if the match finder had been
* disabled at compile time).
*/
* \note It's possible that this match finder gets
* removed in future. The definition will stay
* in this header, but liblzma may return
- * LZMA_HEADER_ERROR if it is specified (just
+ * LZMA_OPTIONS_ERROR if it is specified (just
* like it would if the match finder had been
* disabled at compile time).
*/
*
* \note At the moment, none of the simple filters support
* LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified,
- * LZMA_HEADER_ERROR will be returned. If there is need,
+ * LZMA_OPTIONS_ERROR will be returned. If there is need,
* partial support for LZMA_SYNC_FLUSH can be added in future.
* Partial means that flushing would be possible only at
* offsets that are multiple of 2, 4, or 16 depending on
* indicate which fields in this structure are in use. For now,
* version must always be zero. With non-zero version, the
* lzma_stream_header_encode() and lzma_stream_footer_encode()
- * will return LZMA_HEADER_ERROR.
+ * will return LZMA_OPTIONS_ERROR.
*
* lzma_stream_header_decode() and lzma_stream_footer_decode()
* will always set this to the lowest value that supports all the
* initialize backward_size when encoding Stream Header.
*
* lzma_stream_header_decode() always sets backward_size to
- * LZMA_VLI_VALUE_UNKNOWN so that it is convenient to use
+ * LZMA_VLI_UNKNOWN so that it is convenient to use
* lzma_stream_flags_compare() when both Stream Header and Stream
* Footer have been decoded.
*/
* need to be initialized.
*
* \return - LZMA_OK: Encoding was successful.
- * - LZMA_HEADER_ERROR: options->version is not supported by
+ * - LZMA_OPTIONS_ERROR: options->version is not supported by
* this liblzma version.
* - LZMA_PROG_ERROR: Invalid options.
*/
* \param options Stream Footer options to be encoded.
*
* \return - LZMA_OK: Encoding was successful.
- * - LZMA_HEADER_ERROR: options->version is not supported by
+ * - LZMA_OPTIONS_ERROR: options->version is not supported by
* this liblzma version.
* - LZMA_PROG_ERROR: Invalid options.
*/
* \param in Beginning of the input buffer of
* LZMA_STREAM_HEADER_SIZE bytes.
*
- * options->index_size is always set to LZMA_VLI_VALUE_UNKNOWN. This is to
+ * options->index_size is always set to LZMA_VLI_UNKNOWN. This is to
* help comparing Stream Flags from Stream Header and Stream Footer with
* lzma_stream_flags_compare().
*
* buffer cannot be Stream Header.
* - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header
* is corrupt.
- * - LZMA_HEADER_ERROR: Unsupported options are present
+ * - LZMA_OPTIONS_ERROR: Unsupported options are present
* in the header.
*/
extern lzma_ret lzma_stream_header_decode(
* buffer cannot be Stream Footer.
* - LZMA_DATA_ERROR: CRC32 doesn't match, thus the footer
* is corrupt.
- * - LZMA_HEADER_ERROR: Unsupported options are present
+ * - LZMA_OPTIONS_ERROR: Unsupported options are present
* in the footer.
*
* \note If Stream Header was already decoded successfully, but
* \brief Compare two lzma_stream_flags structures
*
* backward_size values are compared only if both are not
- * LZMA_VLI_VALUE_UNKNOWN.
+ * LZMA_VLI_UNKNOWN.
*
* \return - LZMA_OK: Both are equal. If either had backward_size set
- * to LZMA_VLI_VALUE_UNKNOWN, backward_size values were not
+ * to LZMA_VLI_UNKNOWN, backward_size values were not
* compared or validated.
* - LZMA_DATA_ERROR: The structures differ.
- * - LZMA_HEADER_ERROR: version in either structure is greater
+ * - LZMA_OPTIONS_ERROR: version in either structure is greater
* than the maximum supported version (currently zero).
* - LZMA_PROG_ERROR: Invalid value, e.g. invalid check or
* backward_size.
/**
* \brief Maximum supported value of variable-length integer
*/
-#define LZMA_VLI_VALUE_MAX (UINT64_MAX / 2)
+#define LZMA_VLI_MAX (UINT64_MAX / 2)
/**
* \brief VLI value to denote that the value is unknown
*/
-#define LZMA_VLI_VALUE_UNKNOWN UINT64_MAX
+#define LZMA_VLI_UNKNOWN UINT64_MAX
/**
* \brief Maximum supported length of variable length integers
* \brief Variable-length integer type
*
* This will always be unsigned integer. Valid VLI values are in the range
- * [0, LZMA_VLI_VALUE_MAX]. Unknown value is indicated with
- * LZMA_VLI_VALUE_UNKNOWN, which is the maximum value of the underlaying
- * integer type (this feature is useful in several situations).
+ * [0, LZMA_VLI_MAX]. Unknown value is indicated with LZMA_VLI_UNKNOWN,
+ * which is the maximum value of the underlaying integer type (this feature
+ * is useful in several situations).
*
* In future, even if lzma_vli is typdefined to something else than uint64_t,
- * it is guaranteed that 2 * LZMA_VLI_VALUE_MAX will not overflow lzma_vli.
+ * it is guaranteed that 2 * LZMA_VLI_MAX will not overflow lzma_vli.
* This simplifies integer overflow detection.
*/
typedef uint64_t lzma_vli;
* indicates unknown value.
*/
#define lzma_vli_is_valid(vli) \
- ((vli) <= LZMA_VLI_VALUE_MAX || (vli) == LZMA_VLI_VALUE_UNKNOWN)
+ ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
/**
* non-minimum number of bytes are invalid, thus every integer has exactly
* one encoded representation. The maximum number of bits in a VLI is 63,
* thus the vli argument must be at maximum of UINT64_MAX / 2. You should
- * use LZMA_VLI_VALUE_MAX for clarity.
+ * use LZMA_VLI_MAX for clarity.
*
* This function has two modes: single-call and multi-call. Single-call mode
* encodes the whole integer at once; it is an error if the output buffer is
extern LZMA_API uint32_t
lzma_alignment_input(const lzma_filter *filters, uint32_t guess)
{
- for (size_t i = 0; filters[i].id != LZMA_VLI_VALUE_UNKNOWN; ++i) {
+ for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i) {
switch (filters[i].id) {
case LZMA_FILTER_DELTA:
// The same as the input, check the next filter.
extern LZMA_API uint32_t
lzma_alignment_output(const lzma_filter *filters, uint32_t guess)
{
- if (filters[0].id == LZMA_VLI_VALUE_UNKNOWN)
+ if (filters[0].id == LZMA_VLI_UNKNOWN)
return UINT32_MAX;
// Find the last filter in the chain.
size_t i = 0;
- while (filters[i + 1].id != LZMA_VLI_VALUE_UNKNOWN)
+ while (filters[i + 1].id != LZMA_VLI_UNKNOWN)
++i;
do {
// if the uncompressed size is known, it must be less
// than 256 GiB. Again, if someone complains, this
// will be reconsidered.
- if (coder->uncompressed_size != LZMA_VLI_VALUE_UNKNOWN
+ if (coder->uncompressed_size != LZMA_VLI_UNKNOWN
&& coder->uncompressed_size
>= (LZMA_VLI_C(1) << 38))
return LZMA_FORMAT_ERROR;
lzma_next_coder_init(auto_decoder_init, next, allocator);
if (flags & ~LZMA_SUPPORTED_FLAGS)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
if (next->coder == NULL) {
next->coder = lzma_alloc(sizeof(lzma_coder), allocator);
static inline bool
update_size(lzma_vli *size, lzma_vli add, lzma_vli limit)
{
- if (limit > LZMA_VLI_VALUE_MAX)
- limit = LZMA_VLI_VALUE_MAX;
+ if (limit > LZMA_VLI_MAX)
+ limit = LZMA_VLI_MAX;
if (limit < *size || limit - *size < add)
return true;
static inline bool
is_size_valid(lzma_vli size, lzma_vli reference)
{
- return reference == LZMA_VLI_VALUE_UNKNOWN || reference == size;
+ return reference == LZMA_VLI_UNKNOWN || reference == size;
}
const size_t out_used = *out_pos - out_start;
// NOTE: We compare to compressed_limit here, which prevents
- // the total size of the Block growing past LZMA_VLI_VALUE_MAX.
+ // the total size of the Block growing past LZMA_VLI_MAX.
if (update_size(&coder->compressed_size, in_used,
coder->compressed_limit)
|| update_size(&coder->uncompressed_size,
// value so that Total Size of the Block still is a valid VLI and
// a multiple of four.
next->coder->compressed_limit
- = options->compressed_size == LZMA_VLI_VALUE_UNKNOWN
- ? (LZMA_VLI_VALUE_MAX & ~LZMA_VLI_C(3))
+ = options->compressed_size == LZMA_VLI_UNKNOWN
+ ? (LZMA_VLI_MAX & ~LZMA_VLI_C(3))
- options->header_size
- lzma_check_size(options->check)
: options->compressed_size;
/// The maximum size of a single Block is limited by the maximum size of
-/// a Stream, which is 2^63 - 1 bytes (i.e. LZMA_VLI_VALUE_MAX). We could
+/// a Stream, which is 2^63 - 1 bytes (i.e. LZMA_VLI_MAX). We could
/// take into account the headers etc. to determine the exact maximum size
/// of the Compressed Data field, but the complexity would give us nothing
/// useful. Instead, limit the size of Compressed Data so that even with
///
/// ~LZMA_VLI_C(3) is to guarantee that if we need padding at the end of
/// the Compressed Data field, it will still stay in the proper limit.
-#define COMPRESSED_SIZE_MAX ((LZMA_VLI_VALUE_MAX - LZMA_BLOCK_HEADER_SIZE_MAX \
+#define COMPRESSED_SIZE_MAX ((LZMA_VLI_MAX - LZMA_BLOCK_HEADER_SIZE_MAX \
- LZMA_CHECK_SIZE_MAX) & ~LZMA_VLI_C(3))
size_t *restrict out_pos, size_t out_size, lzma_action action)
{
// Check that our amount of input stays in proper limits.
- if (LZMA_VLI_VALUE_MAX - coder->uncompressed_size < in_size - *in_pos)
+ if (LZMA_VLI_MAX - coder->uncompressed_size < in_size - *in_pos)
return LZMA_PROG_ERROR;
switch (coder->sequence) {
// lzma_block_header_decode(), so we don't need to touch that here.
for (size_t i = 0; i < LZMA_BLOCK_FILTERS_MAX; ++i) {
lzma_free(options->filters[i].options, allocator);
- options->filters[i].id = LZMA_VLI_VALUE_UNKNOWN;
+ options->filters[i].id = LZMA_VLI_UNKNOWN;
options->filters[i].options = NULL;
}
// Initialize the filter options array. This way the caller can
// safely free() the options even if an error occurs in this function.
for (size_t i = 0; i <= LZMA_BLOCK_FILTERS_MAX; ++i) {
- options->filters[i].id = LZMA_VLI_VALUE_UNKNOWN;
+ options->filters[i].id = LZMA_VLI_UNKNOWN;
options->filters[i].options = NULL;
}
// Check for unsupported flags.
if (in[1] & 0x3C)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Start after the Block Header Size and Block Flags fields.
size_t in_pos = 2;
return_if_error(lzma_vli_decode(&options->compressed_size,
NULL, in, &in_pos, in_size));
- if (options->compressed_size > LZMA_VLI_VALUE_MAX / 4 - 1)
+ if (options->compressed_size > LZMA_VLI_MAX / 4 - 1)
return LZMA_DATA_ERROR;
options->compressed_size = (options->compressed_size + 1) * 4;
if (lzma_block_total_size_get(options) == 0)
return LZMA_DATA_ERROR;
} else {
- options->compressed_size = LZMA_VLI_VALUE_UNKNOWN;
+ options->compressed_size = LZMA_VLI_UNKNOWN;
}
// Uncompressed Size
return_if_error(lzma_vli_decode(&options->uncompressed_size,
NULL, in, &in_pos, in_size));
else
- options->uncompressed_size = LZMA_VLI_VALUE_UNKNOWN;
+ options->uncompressed_size = LZMA_VLI_UNKNOWN;
// Filter Flags
const size_t filter_count = (in[1] & 3) + 1;
free_properties(options, allocator);
// Possibly some new field present so use
- // LZMA_HEADER_ERROR instead of LZMA_DATA_ERROR.
- return LZMA_HEADER_ERROR;
+ // LZMA_OPTIONS_ERROR instead of LZMA_DATA_ERROR.
+ return LZMA_OPTIONS_ERROR;
}
}
size_t size = 1 + 1 + 4;
// Compressed Size
- if (options->compressed_size != LZMA_VLI_VALUE_UNKNOWN) {
- if (options->compressed_size > LZMA_VLI_VALUE_MAX / 4 - 1
+ if (options->compressed_size != LZMA_VLI_UNKNOWN) {
+ if (options->compressed_size > LZMA_VLI_MAX / 4 - 1
|| options->compressed_size == 0
|| (options->compressed_size & 3))
return LZMA_PROG_ERROR;
}
// Uncompressed Size
- if (options->uncompressed_size != LZMA_VLI_VALUE_UNKNOWN) {
+ if (options->uncompressed_size != LZMA_VLI_UNKNOWN) {
const size_t add = lzma_vli_size(options->uncompressed_size);
if (add == 0)
return LZMA_PROG_ERROR;
// List of Filter Flags
if (options->filters == NULL
- || options->filters[0].id == LZMA_VLI_VALUE_UNKNOWN)
+ || options->filters[0].id == LZMA_VLI_UNKNOWN)
return LZMA_PROG_ERROR;
- for (size_t i = 0; options->filters[i].id != LZMA_VLI_VALUE_UNKNOWN;
+ for (size_t i = 0; options->filters[i].id != LZMA_VLI_UNKNOWN;
++i) {
// Don't allow too many filters.
if (i == 4)
size_t out_pos = 2;
// Compressed Size
- if (options->compressed_size != LZMA_VLI_VALUE_UNKNOWN) {
+ if (options->compressed_size != LZMA_VLI_UNKNOWN) {
// Compressed Size must be non-zero, fit into a 63-bit
// integer and be a multiple of four. Also the Total Size
// of the Block must fit into 63-bit integer.
if (options->compressed_size == 0
|| (options->compressed_size & 3)
|| options->compressed_size
- > LZMA_VLI_VALUE_MAX
+ > LZMA_VLI_MAX
|| lzma_block_total_size_get(options) == 0)
return LZMA_PROG_ERROR;
}
// Uncompressed Size
- if (options->uncompressed_size != LZMA_VLI_VALUE_UNKNOWN)
+ if (options->uncompressed_size != LZMA_VLI_UNKNOWN)
return_if_error(lzma_vli_encode(
options->uncompressed_size, NULL,
out, &out_pos, out_size));
// Filter Flags
if (options->filters == NULL
- || options->filters[0].id == LZMA_VLI_VALUE_UNKNOWN)
+ || options->filters[0].id == LZMA_VLI_UNKNOWN)
return LZMA_PROG_ERROR;
size_t filter_count = 0;
out, &out_pos, out_size));
} while (options->filters[++filter_count].id
- != LZMA_VLI_VALUE_UNKNOWN);
+ != LZMA_VLI_UNKNOWN);
// Block Flags
out[1] = filter_count - 1;
- if (options->compressed_size != LZMA_VLI_VALUE_UNKNOWN)
+ if (options->compressed_size != LZMA_VLI_UNKNOWN)
out[1] |= 0x40;
- if (options->uncompressed_size != LZMA_VLI_VALUE_UNKNOWN)
+ if (options->uncompressed_size != LZMA_VLI_UNKNOWN)
out[1] |= 0x80;
// Padding
// If Compressed Size is unknown, return that we cannot know
// Total Size either.
- if (options->compressed_size == LZMA_VLI_VALUE_UNKNOWN)
- return LZMA_VLI_VALUE_UNKNOWN;
+ if (options->compressed_size == LZMA_VLI_UNKNOWN)
+ return LZMA_VLI_UNKNOWN;
const lzma_vli total_size = options->compressed_size
+ options->header_size
+ lzma_check_size(options->check);
// Validate the calculated Total Size.
- if (options->compressed_size > LZMA_VLI_VALUE_MAX
+ if (options->compressed_size > LZMA_VLI_MAX
|| (options->compressed_size & 3)
- || total_size > LZMA_VLI_VALUE_MAX)
+ || total_size > LZMA_VLI_MAX)
return 0;
return total_size;
extern LZMA_API size_t
lzma_chunk_size(const lzma_options_filter *filters)
{
- while (filters->id != LZMA_VLI_VALUE_UNKNOWN) {
+ while (filters->id != LZMA_VLI_UNKNOWN) {
switch (filters->id) {
// TODO LZMA_FILTER_SPARSE
} else if (level <= 9) {
filters[0].id = LZMA_FILTER_LZMA2;
filters[0].options = (void *)(&lzma_preset_lzma[level - 1]);
- filters[1].id = LZMA_VLI_VALUE_UNKNOWN;
+ filters[1].id = LZMA_VLI_UNKNOWN;
#endif
} else {
}
if (easy_set_filters(next->coder->filters, level))
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
return lzma_stream_encoder_init(&next->coder->stream_encoder,
allocator, next->coder->filters, LZMA_CHECK_CRC32);
},
#endif
{
- .id = LZMA_VLI_VALUE_UNKNOWN
+ .id = LZMA_VLI_UNKNOWN
}
};
validate_chain(const lzma_filter *filters, size_t *count)
{
// There must be at least one filter.
- if (filters == NULL || filters[0].id == LZMA_VLI_VALUE_UNKNOWN)
+ if (filters == NULL || filters[0].id == LZMA_VLI_UNKNOWN)
return LZMA_PROG_ERROR;
// Number of non-last filters that may change the size of the data
do {
size_t j;
for (j = 0; filters[i].id != features[j].id; ++j)
- if (features[j].id == LZMA_VLI_VALUE_UNKNOWN)
- return LZMA_HEADER_ERROR;
+ if (features[j].id == LZMA_VLI_UNKNOWN)
+ return LZMA_OPTIONS_ERROR;
// If the previous filter in the chain cannot be a non-last
// filter, the chain is invalid.
if (!non_last_ok)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
non_last_ok = features[j].non_last_ok;
last_ok = features[j].last_ok;
changes_size_count += features[j].changes_size;
- } while (filters[++i].id != LZMA_VLI_VALUE_UNKNOWN);
+ } while (filters[++i].id != LZMA_VLI_UNKNOWN);
// There must be 1-4 filters. The last filter must be usable as
// the last filter in the chain. At maximum of three filters are
// allowed to change the size of the data.
if (i > LZMA_BLOCK_FILTERS_MAX || !last_ok || changes_size_count > 3)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
*count = i;
return LZMA_OK;
const lzma_filter_coder *const fc
= coder_find(options[i].id);
if (fc == NULL || fc->init == NULL)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
filters[j].init = fc->init;
filters[j].options = options[i].options;
const lzma_filter_coder *const fc
= coder_find(options[i].id);
if (fc == NULL || fc->init == NULL)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
filters[i].init = fc->init;
filters[i].options = options[i].options;
const lzma_filter *filters)
{
// The chain has to have at least one filter.
- if (filters[0].id == LZMA_VLI_VALUE_UNKNOWN)
+ if (filters[0].id == LZMA_VLI_UNKNOWN)
return UINT64_MAX;
uint64_t total = 0;
total += usage;
}
- } while (filters[++i].id != LZMA_VLI_VALUE_UNKNOWN);
+ } while (filters[++i].id != LZMA_VLI_UNKNOWN);
// Add some fixed amount of extra. It's to compensate memory usage
// of Stream, Block etc. coders, malloc() overhead, stack etc.
/// Decodes Filter Properties.
///
/// \return - LZMA_OK: Properties decoded successfully.
- /// - LZMA_HEADER_ERROR: Unsupported properties
+ /// - LZMA_OPTIONS_ERROR: Unsupported properties
/// - LZMA_MEM_ERROR: Memory allocation failed.
lzma_ret (*props_decode)(void **options, lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
const lzma_filter_decoder *const fd = decoder_find(filter->id);
if (fd == NULL)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
if (fd->props_decode == NULL)
- return props_size == 0 ? LZMA_OK : LZMA_HEADER_ERROR;
+ return props_size == 0 ? LZMA_OK : LZMA_OPTIONS_ERROR;
return fd->props_decode(
&filter->options, allocator, props, props_size);
/// Encodes Filter Properties.
///
/// \return - LZMA_OK: Properties encoded sucessfully.
- /// - LZMA_HEADER_ERROR: Unsupported options
+ /// - LZMA_OPTIONS_ERROR: Unsupported options
/// - LZMA_PROG_ERROR: Invalid options or not enough
/// output space
lzma_ret (*props_encode)(const void *options, uint8_t *out);
{
lzma_vli max = 0;
- for (size_t i = 0; filters[i].id != LZMA_VLI_VALUE_UNKNOWN; ++i) {
+ for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i) {
const lzma_filter_encoder *const fe
= encoder_find(filters[i].id);
if (fe->chunk_size != NULL) {
const lzma_vli size
= fe->chunk_size(filters[i].options);
- if (size == LZMA_VLI_VALUE_UNKNOWN)
- return LZMA_VLI_VALUE_UNKNOWN;
+ if (size == LZMA_VLI_UNKNOWN)
+ return LZMA_VLI_UNKNOWN;
if (size > max)
max = size;
const lzma_filter_encoder *const fe = encoder_find(filter->id);
if (fe == NULL) {
// Unknown filter - if the Filter ID is a proper VLI,
- // return LZMA_HEADER_ERROR instead of LZMA_PROG_ERROR,
+ // return LZMA_OPTIONS_ERROR instead of LZMA_PROG_ERROR,
// because it's possible that we just don't have support
// compiled in for the requested filter.
- return filter->id <= LZMA_VLI_VALUE_MAX
- ? LZMA_HEADER_ERROR : LZMA_PROG_ERROR;
+ return filter->id <= LZMA_VLI_MAX
+ ? LZMA_OPTIONS_ERROR : LZMA_PROG_ERROR;
}
if (fe->props_size_get == NULL) {
index_append(lzma_index *i, lzma_allocator *allocator, lzma_vli total_size,
lzma_vli uncompressed_size, bool is_padding)
{
- if (total_size > LZMA_VLI_VALUE_MAX
- || uncompressed_size > LZMA_VLI_VALUE_MAX)
+ if (total_size > LZMA_VLI_MAX
+ || uncompressed_size > LZMA_VLI_MAX)
return LZMA_DATA_ERROR;
// This looks a bit ugly. We want to first validate that the Index
// First update the info so we can validate it.
i->padding_size += total_size;
- if (i->padding_size > LZMA_VLI_VALUE_MAX
- || lzma_index_file_size(i)
- > LZMA_VLI_VALUE_MAX)
+ if (i->padding_size > LZMA_VLI_MAX
+ || lzma_index_file_size(i) > LZMA_VLI_MAX)
ret = LZMA_DATA_ERROR; // Would grow past the limits.
else
ret = index_append_real(i, allocator,
++i->count;
i->index_list_size += index_list_size_add;
- if (i->total_size > LZMA_VLI_VALUE_MAX
- || i->uncompressed_size > LZMA_VLI_VALUE_MAX
+ if (i->total_size > LZMA_VLI_MAX
+ || i->uncompressed_size > LZMA_VLI_MAX
|| lzma_index_size(i) > LZMA_BACKWARD_SIZE_MAX
- || lzma_index_file_size(i)
- > LZMA_VLI_VALUE_MAX)
+ || lzma_index_file_size(i) > LZMA_VLI_MAX)
ret = LZMA_DATA_ERROR; // Would grow past the limits.
else
ret = index_append_real(i, allocator,
lzma_allocator *allocator, lzma_vli padding)
{
if (dest == NULL || src == NULL || dest == src
- || padding > LZMA_VLI_VALUE_MAX)
+ || padding > LZMA_VLI_MAX)
return LZMA_PROG_ERROR;
// Check that the combined size of the Indexes stays within limits.
{
const lzma_vli dest_size = lzma_index_file_size(dest);
const lzma_vli src_size = lzma_index_file_size(src);
- if (dest_size + src_size > LZMA_VLI_VALUE_UNKNOWN
+ if (dest_size + src_size > LZMA_VLI_UNKNOWN
|| dest_size + src_size + padding
- > LZMA_VLI_VALUE_UNKNOWN)
+ > LZMA_VLI_UNKNOWN)
return LZMA_DATA_ERROR;
}
// Index + Stream Footer + Stream Padding + Stream Header.
//
// NOTE: This cannot overflow, because Index Size is always
- // far smaller than LZMA_VLI_VALUE_MAX, and adding two VLIs
+ // far smaller than LZMA_VLI_MAX, and adding two VLIs
// (Index Size and padding) doesn't overflow. It may become
// an invalid VLI if padding is huge, but that is caught by
// index_append().
/// Maximum encoded value of Total Size.
-#define TOTAL_SIZE_ENCODED_MAX (LZMA_VLI_VALUE_MAX / 4 - 1)
+#define TOTAL_SIZE_ENCODED_MAX (LZMA_VLI_MAX / 4 - 1)
/// Convert the real Total Size value to a value that is stored to the Index.
#define total_size_encode(size) ((size) / 4 - 1)
lzma_vli uncompressed_size)
{
// Validate the arguments.
- if (index_hash->sequence != SEQ_BLOCK || total_size == 0 ||
- total_size > LZMA_VLI_VALUE_MAX || (total_size & 3)
- || uncompressed_size > LZMA_VLI_VALUE_MAX)
+ if (index_hash->sequence != SEQ_BLOCK || total_size == 0
+ || total_size > LZMA_VLI_MAX || (total_size & 3)
+ || uncompressed_size > LZMA_VLI_MAX)
return LZMA_PROG_ERROR;
// Update the hash.
total_size, uncompressed_size));
// Validate the properties of *info are still in allowed limits.
- if (index_hash->blocks.total_size > LZMA_VLI_VALUE_MAX
- || index_hash->blocks.uncompressed_size
- > LZMA_VLI_VALUE_MAX
+ if (index_hash->blocks.total_size > LZMA_VLI_MAX
+ || index_hash->blocks.uncompressed_size > LZMA_VLI_MAX
|| index_size(index_hash->blocks.count,
index_hash->blocks.index_list_size)
> LZMA_BACKWARD_SIZE_MAX
|| index_stream_size(index_hash->blocks.total_size,
index_hash->blocks.count,
index_hash->blocks.index_list_size)
- > LZMA_VLI_VALUE_MAX)
+ > LZMA_VLI_MAX)
return LZMA_DATA_ERROR;
return LZMA_OK;
if (memusage == UINT64_MAX) {
// One or more unknown Filter IDs.
- ret = LZMA_HEADER_ERROR;
+ ret = LZMA_OPTIONS_ERROR;
} else if (memusage > coder->memlimit) {
// The chain would need too much memory.
ret = LZMA_MEMLIMIT_ERROR;
lzma_next_coder_init(lzma_stream_decoder_init, next, allocator);
if (flags & ~LZMA_SUPPORTED_FLAGS)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
if (next->coder == NULL) {
next->coder = lzma_alloc(sizeof(lzma_coder), allocator);
// initialized, it is a good idea to do it here, because this way
// we catch if someone gave us Filter ID that cannot be used in
// Blocks/Streams.
- coder->block_options.compressed_size = LZMA_VLI_VALUE_UNKNOWN;
- coder->block_options.uncompressed_size = LZMA_VLI_VALUE_UNKNOWN;
+ coder->block_options.compressed_size = LZMA_VLI_UNKNOWN;
+ coder->block_options.uncompressed_size = LZMA_VLI_UNKNOWN;
return_if_error(lzma_block_header_size(&coder->block_options));
{
// We can compare only version 0 structures.
if (a->version != 0 || b->version != 0)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Check type
if ((unsigned int)(a->check) > LZMA_CHECK_ID_MAX
return LZMA_DATA_ERROR;
// Backward Sizes are compared only if they are known in both.
- if (a->backward_size != LZMA_VLI_VALUE_UNKNOWN
- && b->backward_size != LZMA_VLI_VALUE_UNKNOWN) {
+ if (a->backward_size != LZMA_VLI_UNKNOWN
+ && b->backward_size != LZMA_VLI_UNKNOWN) {
if (!is_backward_size_valid(a) || !is_backward_size_valid(b))
return LZMA_PROG_ERROR;
// Stream Flags
if (stream_flags_decode(options, in + sizeof(lzma_header_magic)))
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Set Backward Size to indicate unknown value. That way
// lzma_stream_flags_compare() can be used to compare Stream Header
// and Stream Footer while keeping it useful also for comparing
// two Stream Footers.
- options->backward_size = LZMA_VLI_VALUE_UNKNOWN;
+ options->backward_size = LZMA_VLI_UNKNOWN;
return LZMA_OK;
}
// Stream Flags
if (stream_flags_decode(options, in + sizeof(uint32_t) * 2))
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Backward Size
options->backward_size = integer_read_32(in + sizeof(uint32_t));
+ 4 == LZMA_STREAM_HEADER_SIZE);
if (options->version != 0)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Magic
memcpy(out, lzma_header_magic, sizeof(lzma_header_magic));
== LZMA_STREAM_HEADER_SIZE);
if (options->version != 0)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Backward Size
if (!is_backward_size_valid(options))
vli_pos = &vli_pos_internal;
// Validate the arguments.
- if (*vli_pos >= LZMA_VLI_BYTES_MAX || vli > LZMA_VLI_VALUE_MAX)
+ if (*vli_pos >= LZMA_VLI_BYTES_MAX || vli > LZMA_VLI_MAX)
return LZMA_PROG_ERROR;
if (*out_pos >= out_size)
extern LZMA_API uint32_t
lzma_vli_size(lzma_vli vli)
{
- if (vli > LZMA_VLI_VALUE_MAX)
+ if (vli > LZMA_VLI_MAX)
return 0;
uint32_t i = 0;
->distance;
if (next->coder->distance < LZMA_DELTA_DISTANCE_MIN
|| next->coder->distance > LZMA_DELTA_DISTANCE_MAX)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Initialize the rest of the variables.
next->coder->pos = 0;
const uint8_t *props, size_t props_size)
{
if (props_size != 1)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
lzma_options_delta *opt
= lzma_alloc(sizeof(lzma_options_delta), allocator);
if (opt->type != LZMA_DELTA_TYPE_BYTE
|| opt->distance < LZMA_DELTA_DISTANCE_MIN
|| opt->distance > LZMA_DELTA_DISTANCE_MAX)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
out[0] = opt->distance - LZMA_DELTA_DISTANCE_MIN;
// recommended to give aligned buffers to liblzma.
//
// Avoid integer overflow. FIXME Should the return value be
- // LZMA_HEADER_ERROR or LZMA_MEM_ERROR?
+ // LZMA_OPTIONS_ERROR or LZMA_MEM_ERROR?
if (dict_size > SIZE_MAX - 15)
return LZMA_MEM_ERROR;
// Setup the size information into next->coder->mf and deallocate
// old buffers if they have wrong size.
if (lz_encoder_prepare(&next->coder->mf, allocator, &lz_options))
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Allocate new buffers if needed, and do the rest of
// the initialization.
const uint8_t *props, size_t props_size)
{
if (props_size != 1)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Check that reserved bits are unset.
if (props[0] & 0xC0)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Decode the dictionary size.
if (props[0] > 40)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
lzma_options_lzma *opt = lzma_alloc(
sizeof(lzma_options_lzma), allocator);
uint32_t literal_context_bits;
uint32_t literal_pos_mask;
- /// Uncompressed size as bytes, or LZMA_VLI_VALUE_UNKNOWN if end of
+ /// Uncompressed size as bytes, or LZMA_VLI_UNKNOWN if end of
/// payload marker is expected.
lzma_vli uncompressed_size;
// If uncompressed size is known, there must be no end of payload
// marker.
const bool no_eopm = coder->uncompressed_size
- != LZMA_VLI_VALUE_UNKNOWN;
+ != LZMA_VLI_UNKNOWN;
if (no_eopm && coder->uncompressed_size < dict.limit - dict.pos)
dict.limit = dict.pos + (size_t)(coder->uncompressed_size);
// present if uncompressed
// size is known.
if (coder->uncompressed_size
- != LZMA_VLI_VALUE_UNKNOWN) {
+ != LZMA_VLI_UNKNOWN) {
ret = LZMA_DATA_ERROR;
goto out;
}
// Update the remaining amount of uncompressed data if uncompressed
// size was known.
- if (coder->uncompressed_size != LZMA_VLI_VALUE_UNKNOWN) {
+ if (coder->uncompressed_size != LZMA_VLI_UNKNOWN) {
coder->uncompressed_size -= dict.pos - dict_start;
// Since there cannot be end of payload marker if the
lz, allocator, options, dict_size));
lzma_decoder_reset(lz->coder, options);
- lzma_decoder_uncompressed(lz->coder, LZMA_VLI_VALUE_UNKNOWN);
+ lzma_decoder_uncompressed(lz->coder, LZMA_VLI_UNKNOWN);
return LZMA_OK;
}
const uint8_t *props, size_t props_size)
{
if (props_size != 5)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
lzma_options_lzma *opt
= lzma_alloc(sizeof(lzma_options_lzma), allocator);
error:
lzma_free(opt, allocator);
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
}
{
// Plain LZMA has no support for sync-flushing.
if (unlikely(mf->action == LZMA_SYNC_FLUSH))
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
return lzma_lzma_encode(coder, mf, out, out_pos, out_size, UINT32_MAX);
}
if (!is_lclppb_valid(options)
|| options->fast_bytes < LZMA_FAST_BYTES_MIN
|| options->fast_bytes > LZMA_FAST_BYTES_MAX)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Set compression mode.
switch (options->mode) {
}
default:
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
}
coder->is_initialized = false;
// LZ encoder options FIXME validation
if (set_lz_options(lz_options, options))
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
return LZMA_OK;
}
// 4, or 16. With x86 filter, it needs good luck, and thus cannot
// be made to work predictably.
if (action == LZMA_SYNC_FLUSH)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Flush already filtered data from coder->buffer[] to out[].
if (coder->pos < coder->filtered) {
return LZMA_OK;
if (props_size != 4)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
lzma_options_simple *opt = lzma_alloc(
sizeof(lzma_options_simple), allocator);
coder->filter_flags_decoder.coder, allocator,
in, in_pos, in_size, NULL, NULL, 0, LZMA_RUN);
if (ret != LZMA_STREAM_END)
- return ret == LZMA_HEADER_ERROR
+ return ret == LZMA_OPTIONS_ERROR
? LZMA_DATA_ERROR : ret;
// Don't free the filter_flags_decoder. It doesn't take much
.id = LZMA_FILTER_SUBBLOCK_HELPER,
.options = &coder->helper,
}, {
- .id = LZMA_VLI_VALUE_UNKNOWN,
+ .id = LZMA_VLI_UNKNOWN,
.options = NULL,
}
};
// Optimization: We know that LZMA uses End of Payload Marker
// (not End of Input), so we can omit the helper filter.
if (filters[0].id == LZMA_FILTER_LZMA)
- filters[1].id = LZMA_VLI_VALUE_UNKNOWN;
+ filters[1].id = LZMA_VLI_UNKNOWN;
return_if_error(lzma_raw_decoder_init(
&coder->subfilter, allocator, filters));
// Verify that the new limit is valid.
if (new_limit < LZMA_SUBBLOCK_DATA_SIZE_MIN
|| new_limit > LZMA_SUBBLOCK_DATA_SIZE_MAX)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Ff the new limit is different than the previous one, we need
// to reallocate the data buffer.
}
default:
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
}
// If we are sync-flushing or finishing, the application may
< LZMA_SUBBLOCK_ALIGNMENT_MIN
|| coder->alignment.multiple
> LZMA_SUBBLOCK_ALIGNMENT_MAX)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
// Run-length encoder
//
// validate it.
coder->rle.size = coder->options->rle;
if (coder->rle.size > LZMA_SUBBLOCK_RLE_MAX)
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
if (coder->subblock.size != 0
&& coder->rle.size
assert(coder->options != NULL);
// There must be a filter specified.
- if (coder->options->subfilter_options.id
- == LZMA_VLI_VALUE_UNKNOWN)
- return LZMA_HEADER_ERROR;
+ if (coder->options->subfilter_options.id == LZMA_VLI_UNKNOWN)
+ return LZMA_OPTIONS_ERROR;
// Initialize a raw encoder to work as a Subfilter.
lzma_filter options[2];
options[0] = coder->options->subfilter_options;
- options[1].id = LZMA_VLI_VALUE_UNKNOWN;
+ options[1].id = LZMA_VLI_UNKNOWN;
return_if_error(lzma_raw_encoder_init(
&coder->subfilter.subcoder, allocator,
|| next->coder->options->alignment
> LZMA_SUBBLOCK_ALIGNMENT_MAX) {
subblock_encoder_end(next->coder, allocator);
- return LZMA_HEADER_ERROR;
+ return LZMA_OPTIONS_ERROR;
}
next->coder->alignment.multiple
= next->coder->options->alignment;
}
// Terminate the filter options array.
- opt_filters[filter_count].id = LZMA_VLI_VALUE_UNKNOWN;
+ opt_filters[filter_count].id = LZMA_VLI_UNKNOWN;
// If we are using the LZMA_Alone format, allow exactly one filter
// which has to be LZMA.
case LZMA_BUF_ERROR:
return _("Unexpected end of input");
- case LZMA_HEADER_ERROR:
+ case LZMA_OPTIONS_ERROR:
return _("Unsupported options");
case LZMA_UNSUPPORTED_CHECK:
ret = lzma_vli_reverse_decode(&handle->uncompressed_size,
handle->buffer, &tmp);
if (ret != LZMA_OK)
- handle->uncompressed_size = LZMA_VLI_VALUE_UNKNOWN;
+ handle->uncompressed_size = LZMA_VLI_UNKNOWN;
}
// Calculate the Header Metadata Block start offset.
// If Uncompressed Size isn't present in Block Header,
// it must be present in Stream Footer.
if (handle->block_options.uncompressed_size
- == LZMA_VLI_VALUE_UNKNOWN
+ == LZMA_VLI_UNKNOWN
&& handle->stream_flags.uncompressed_size
- == LZMA_VLI_VALUE_UNKNOWN) {
+ == LZMA_VLI_UNKNOWN) {
FILE_IS_CORRUPT();
return;
}
fprintf(stderr, "File is corrupt\n");
exit(ERROR);
- case LZMA_HEADER_ERROR:
+ case LZMA_OPTIONS_ERROR:
fprintf(stderr, "Unsupported file "
"format or filters\n");
exit(ERROR);
.has_uncompressed_size_in_footer = false,
.has_backward_size = false,
.handle_padding = false,
- .total_size = LZMA_VLI_VALUE_UNKNOWN,
- .compressed_size = LZMA_VLI_VALUE_UNKNOWN,
- .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN,
+ .total_size = LZMA_VLI_UNKNOWN,
+ .compressed_size = LZMA_VLI_UNKNOWN,
+ .uncompressed_size = LZMA_VLI_UNKNOWN,
.header_size = 5,
};
- block_options.filters[0].id = LZMA_VLI_VALUE_UNKNOWN;
+ block_options.filters[0].id = LZMA_VLI_UNKNOWN;
block_options.filters[0].options = NULL;
static lzma_filter filters_none[1] = {
{
- .id = LZMA_VLI_VALUE_UNKNOWN,
+ .id = LZMA_VLI_UNKNOWN,
},
};
.id = LZMA_FILTER_LZMA2,
.options = (void *)(&lzma_preset_lzma[0]),
}, {
- .id = LZMA_VLI_VALUE_UNKNOWN,
+ .id = LZMA_VLI_UNKNOWN,
}
};
.id = LZMA_FILTER_LZMA2,
.options = (void *)(&lzma_preset_lzma[0]),
}, {
- .id = LZMA_VLI_VALUE_UNKNOWN,
+ .id = LZMA_VLI_UNKNOWN,
}
};
.id = LZMA_FILTER_LZMA2,
.options = (void *)(&lzma_preset_lzma[0]),
}, {
- .id = LZMA_VLI_VALUE_UNKNOWN,
+ .id = LZMA_VLI_UNKNOWN,
}
};
== decoded_options.uncompressed_size);
for (size_t i = 0; known_options.filters[i].id
- != LZMA_VLI_VALUE_UNKNOWN; ++i)
+ != LZMA_VLI_UNKNOWN; ++i)
expect(known_options.filters[i].id == filters[i].id);
for (size_t i = 0; i < LZMA_BLOCK_FILTERS_MAX; ++i)
{
known_options = (lzma_block){
.check = LZMA_CHECK_NONE,
- .compressed_size = LZMA_VLI_VALUE_UNKNOWN,
- .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN,
+ .compressed_size = LZMA_VLI_UNKNOWN,
+ .uncompressed_size = LZMA_VLI_UNKNOWN,
.filters = NULL,
};
known_options.compressed_size = 0; // Cannot be zero.
expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
- known_options.compressed_size = LZMA_VLI_VALUE_UNKNOWN;
+ known_options.compressed_size = LZMA_VLI_UNKNOWN;
known_options.uncompressed_size = 0;
expect(lzma_block_header_size(&known_options) == LZMA_OK);
- known_options.uncompressed_size = LZMA_VLI_VALUE_MAX + 1;
+ known_options.uncompressed_size = LZMA_VLI_MAX + 1;
expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR);
}
{
known_options = (lzma_block){
.check = LZMA_CHECK_CRC32,
- .compressed_size = LZMA_VLI_VALUE_UNKNOWN,
- .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN,
+ .compressed_size = LZMA_VLI_UNKNOWN,
+ .uncompressed_size = LZMA_VLI_UNKNOWN,
.filters = filters_four,
};
{
known_options = (lzma_block){
.check = LZMA_CHECK_CRC32,
- .compressed_size = LZMA_VLI_VALUE_UNKNOWN,
- .uncompressed_size = LZMA_VLI_VALUE_UNKNOWN,
+ .compressed_size = LZMA_VLI_UNKNOWN,
+ .uncompressed_size = LZMA_VLI_UNKNOWN,
.filters = filters_one,
};
integer_write_32(buf + known_options.header_size - 4,
lzma_crc32(buf, known_options.header_size - 4, 0));
expect(lzma_block_header_decode(&decoded_options, NULL, buf)
- == LZMA_HEADER_ERROR);
+ == LZMA_OPTIONS_ERROR);
buf[2] ^= 0x1F;
// Non-nul Padding
integer_write_32(buf + known_options.header_size - 4,
lzma_crc32(buf, known_options.header_size - 4, 0));
expect(lzma_block_header_decode(&decoded_options, NULL, buf)
- == LZMA_HEADER_ERROR);
+ == LZMA_OPTIONS_ERROR);
buf[known_options.header_size - 4 - 1] ^= 1;
}
buffer[0] = LZMA_FILTER_SUBBLOCK;
buffer[1] = 1;
buffer[2] = 0;
- expect(!decode_ret(3, LZMA_HEADER_ERROR));
+ expect(!decode_ret(3, LZMA_OPTIONS_ERROR));
}
#endif
// Integer overflow tests
lzma_index *i = create_empty();
- expect(lzma_index_append(i, NULL, LZMA_VLI_VALUE_MAX - 5, 1234)
+ expect(lzma_index_append(i, NULL, LZMA_VLI_MAX - 5, 1234)
== LZMA_DATA_ERROR);
// TODO
// Header doesn't have Backward Size, so make
// lzma_stream_flags_compare() ignore it.
- decoded_flags.backward_size = LZMA_VLI_VALUE_UNKNOWN;
+ decoded_flags.backward_size = LZMA_VLI_UNKNOWN;
return validate();
}
expect(lzma_stream_footer_encode(&known_flags, buffer)
== LZMA_PROG_ERROR);
- known_flags.backward_size = LZMA_VLI_VALUE_MAX;
+ known_flags.backward_size = LZMA_VLI_MAX;
expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
buffer[6] ^= 0x20;
crc = lzma_crc32(buffer + 6, 2, 0);
integer_write_32(buffer + 8, crc);
- succeed(test_header_decoder(LZMA_HEADER_ERROR));
+ succeed(test_header_decoder(LZMA_OPTIONS_ERROR));
// Test 3 (invalid CRC32)
expect(lzma_stream_header_encode(&known_flags, buffer) == LZMA_OK);
buffer[9] ^= 0x40;
crc = lzma_crc32(buffer + 4, 6, 0);
integer_write_32(buffer, crc);
- succeed(test_footer_decoder(LZMA_HEADER_ERROR));
+ succeed(test_footer_decoder(LZMA_OPTIONS_ERROR));
// Test 5 (invalid Magic Bytes)
expect(lzma_stream_footer_encode(&known_flags, buffer) == LZMA_OK);
"LZMA_MEM_ERROR",
"LZMA_MEMLIMIT_ERROR",
"LZMA_FORMAT_ERROR",
- "LZMA_HEADER_ERROR",
+ "LZMA_OPTIONS_ERROR",
"LZMA_DATA_ERROR",
"LZMA_BUF_ERROR",
"LZMA_PROG_ERROR"