1 | ///////////////////////////////////////////////////////////////////////////////
|
---|
2 | //
|
---|
3 | /// \file stream_flags_common.c
|
---|
4 | /// \brief Common stuff for Stream flags coders
|
---|
5 | //
|
---|
6 | // Author: Lasse Collin
|
---|
7 | //
|
---|
8 | // This file has been put into the public domain.
|
---|
9 | // You can do whatever you want with this file.
|
---|
10 | //
|
---|
11 | ///////////////////////////////////////////////////////////////////////////////
|
---|
12 |
|
---|
13 | #include "stream_flags_common.h"
|
---|
14 |
|
---|
15 |
|
---|
16 | const uint8_t lzma_header_magic[6] = { 0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00 };
|
---|
17 | const uint8_t lzma_footer_magic[2] = { 0x59, 0x5A };
|
---|
18 |
|
---|
19 |
|
---|
20 | extern LZMA_API(lzma_ret)
|
---|
21 | lzma_stream_flags_compare(
|
---|
22 | const lzma_stream_flags *a, const lzma_stream_flags *b)
|
---|
23 | {
|
---|
24 | // We can compare only version 0 structures.
|
---|
25 | if (a->version != 0 || b->version != 0)
|
---|
26 | return LZMA_OPTIONS_ERROR;
|
---|
27 |
|
---|
28 | // Check type
|
---|
29 | if ((unsigned int)(a->check) > LZMA_CHECK_ID_MAX
|
---|
30 | || (unsigned int)(b->check) > LZMA_CHECK_ID_MAX)
|
---|
31 | return LZMA_PROG_ERROR;
|
---|
32 |
|
---|
33 | if (a->check != b->check)
|
---|
34 | return LZMA_DATA_ERROR;
|
---|
35 |
|
---|
36 | // Backward Sizes are compared only if they are known in both.
|
---|
37 | if (a->backward_size != LZMA_VLI_UNKNOWN
|
---|
38 | && b->backward_size != LZMA_VLI_UNKNOWN) {
|
---|
39 | if (!is_backward_size_valid(a) || !is_backward_size_valid(b))
|
---|
40 | return LZMA_PROG_ERROR;
|
---|
41 |
|
---|
42 | if (a->backward_size != b->backward_size)
|
---|
43 | return LZMA_DATA_ERROR;
|
---|
44 | }
|
---|
45 |
|
---|
46 | return LZMA_OK;
|
---|
47 | }
|
---|