Coverage Report

Created: 2023-09-25 06:56

/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
}