/src/xz/src/liblzma/common/stream_flags_common.c
Line | Count | Source (jump to first uncovered line) |
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 | 48.9k | { |
24 | | // We can compare only version 0 structures. |
25 | 48.9k | if (a->version != 0 || b->version != 0) |
26 | 0 | return LZMA_OPTIONS_ERROR; |
27 | | |
28 | | // Check type |
29 | 48.9k | if ((unsigned int)(a->check) > LZMA_CHECK_ID_MAX |
30 | 48.9k | || (unsigned int)(b->check) > LZMA_CHECK_ID_MAX) |
31 | 0 | return LZMA_PROG_ERROR; |
32 | | |
33 | 48.9k | if (a->check != b->check) |
34 | 8 | return LZMA_DATA_ERROR; |
35 | | |
36 | | // Backward Sizes are compared only if they are known in both. |
37 | 48.9k | if (a->backward_size != LZMA_VLI_UNKNOWN |
38 | 48.9k | && b->backward_size != LZMA_VLI_UNKNOWN) { |
39 | 0 | if (!is_backward_size_valid(a) || !is_backward_size_valid(b)) |
40 | 0 | return LZMA_PROG_ERROR; |
41 | | |
42 | 0 | if (a->backward_size != b->backward_size) |
43 | 0 | return LZMA_DATA_ERROR; |
44 | 0 | } |
45 | | |
46 | 48.9k | return LZMA_OK; |
47 | 48.9k | } |