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