Rizin
unix-like reverse engineering framework and cli tools
stream_flags_common.c
Go to the documentation of this file.
1 //
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 //
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 
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) {
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 }
#define LZMA_CHECK_ID_MAX
Maximum valid Check ID.
Definition: check.h:68
unsigned char uint8_t
Definition: sftypes.h:31
#define b(i)
Definition: sha256.c:42
#define a(i)
Definition: sha256.c:41
const uint8_t lzma_header_magic[6]
LZMA_API(lzma_ret)
const uint8_t lzma_footer_magic[2]
Common stuff for Stream flags coders.
static bool is_backward_size_valid(const lzma_stream_flags *options)
Options for encoding/decoding Stream Header and Stream Footer.
Definition: stream_flags.h:33
#define LZMA_VLI_UNKNOWN
VLI value to denote that the value is unknown.
Definition: vli.h:39
lzma_ret
Return values used by several functions in liblzma.
Definition: base.h:57
@ LZMA_PROG_ERROR
Programming error.
Definition: base.h:218
@ LZMA_DATA_ERROR
Data is corrupt.
Definition: base.h:172
@ LZMA_OPTIONS_ERROR
Invalid or unsupported options.
Definition: base.h:160
@ LZMA_OK
Operation completed successfully.
Definition: base.h:58