@@ -19,69 +19,69 @@ static size_t dataLen;
19
19
static void check_compress_level (uint8_t * compr , size_t comprLen ,
20
20
uint8_t * uncompr , size_t uncomprLen ,
21
21
int level ) {
22
- PREFIX (compress2 )(compr , & comprLen , data , dataLen , level );
23
- PREFIX (uncompress )(uncompr , & uncomprLen , compr , comprLen );
22
+ PREFIX (compress2 )(compr , & comprLen , data , dataLen , level );
23
+ PREFIX (uncompress )(uncompr , & uncomprLen , compr , comprLen );
24
24
25
- /* Make sure compress + uncompress gives back the input data. */
26
- assert (dataLen == uncomprLen );
27
- assert (0 == memcmp (data , uncompr , dataLen ));
25
+ /* Make sure compress + uncompress gives back the input data. */
26
+ assert (dataLen == uncomprLen );
27
+ assert (0 == memcmp (data , uncompr , dataLen ));
28
28
}
29
29
30
30
#define put_byte (s , i , c ) {s[i] = (unsigned char)(c);}
31
31
32
32
static void write_zlib_header (uint8_t * s ) {
33
- unsigned level_flags = 0 ; /* compression level (0..3) */
34
- unsigned w_bits = 8 ; /* window size log2(w_size) (8..16) */
35
- unsigned int header = (Z_DEFLATED + ((w_bits - 8 )<<4 )) << 8 ;
36
- header |= (level_flags << 6 );
33
+ unsigned level_flags = 0 ; /* compression level (0..3) */
34
+ unsigned w_bits = 8 ; /* window size log2(w_size) (8..16) */
35
+ unsigned int header = (Z_DEFLATED + ((w_bits - 8 )<<4 )) << 8 ;
36
+ header |= (level_flags << 6 );
37
37
38
- header += 31 - (header % 31 );
38
+ header += 31 - (header % 31 );
39
39
40
- /* s is guaranteed to be longer than 2 bytes. */
41
- put_byte (s , 0 , (unsigned char )(header >> 8 ));
42
- put_byte (s , 1 , (unsigned char )(header & 0xff ));
40
+ /* s is guaranteed to be longer than 2 bytes. */
41
+ put_byte (s , 0 , (unsigned char )(header >> 8 ));
42
+ put_byte (s , 1 , (unsigned char )(header & 0xff ));
43
43
}
44
44
45
45
static void check_decompress (uint8_t * compr , size_t comprLen ) {
46
- /* We need to write a valid zlib header of size two bytes. Copy the input data
47
- in a larger buffer. Do not modify the input data to avoid libFuzzer error:
48
- fuzz target overwrites its const input. */
49
- size_t copyLen = dataLen + 2 ;
50
- uint8_t * copy = (uint8_t * )malloc (copyLen );
51
- memcpy (copy + 2 , data , dataLen );
52
- write_zlib_header (copy );
53
-
54
- PREFIX (uncompress )(compr , & comprLen , copy , copyLen );
55
- free (copy );
46
+ /* We need to write a valid zlib header of size two bytes. Copy the input data
47
+ in a larger buffer. Do not modify the input data to avoid libFuzzer error:
48
+ fuzz target overwrites its const input. */
49
+ size_t copyLen = dataLen + 2 ;
50
+ uint8_t * copy = (uint8_t * )malloc (copyLen );
51
+ memcpy (copy + 2 , data , dataLen );
52
+ write_zlib_header (copy );
53
+
54
+ PREFIX (uncompress )(compr , & comprLen , copy , copyLen );
55
+ free (copy );
56
56
}
57
57
58
58
int LLVMFuzzerTestOneInput (const uint8_t * d , size_t size ) {
59
- /* compressBound does not provide enough space for low compression levels. */
60
- size_t comprLen = 100 + 2 * PREFIX (compressBound )(size );
61
- size_t uncomprLen = size ;
62
- uint8_t * compr , * uncompr ;
59
+ /* compressBound does not provide enough space for low compression levels. */
60
+ size_t comprLen = 100 + 2 * PREFIX (compressBound )(size );
61
+ size_t uncomprLen = size ;
62
+ uint8_t * compr , * uncompr ;
63
63
64
- /* Discard inputs larger than 1Mb. */
65
- static size_t kMaxSize = 1024 * 1024 ;
64
+ /* Discard inputs larger than 1Mb. */
65
+ static size_t kMaxSize = 1024 * 1024 ;
66
66
67
- if (size < 1 || size > kMaxSize )
68
- return 0 ;
67
+ if (size < 1 || size > kMaxSize )
68
+ return 0 ;
69
69
70
- data = d ;
71
- dataLen = size ;
72
- compr = (uint8_t * )calloc (1 , comprLen );
73
- uncompr = (uint8_t * )calloc (1 , uncomprLen );
70
+ data = d ;
71
+ dataLen = size ;
72
+ compr = (uint8_t * )calloc (1 , comprLen );
73
+ uncompr = (uint8_t * )calloc (1 , uncomprLen );
74
74
75
- check_compress_level (compr , comprLen , uncompr , uncomprLen , 1 );
76
- check_compress_level (compr , comprLen , uncompr , uncomprLen , 3 );
77
- check_compress_level (compr , comprLen , uncompr , uncomprLen , 6 );
78
- check_compress_level (compr , comprLen , uncompr , uncomprLen , 7 );
75
+ check_compress_level (compr , comprLen , uncompr , uncomprLen , 1 );
76
+ check_compress_level (compr , comprLen , uncompr , uncomprLen , 3 );
77
+ check_compress_level (compr , comprLen , uncompr , uncomprLen , 6 );
78
+ check_compress_level (compr , comprLen , uncompr , uncomprLen , 7 );
79
79
80
- check_decompress (compr , comprLen );
80
+ check_decompress (compr , comprLen );
81
81
82
- free (compr );
83
- free (uncompr );
82
+ free (compr );
83
+ free (uncompr );
84
84
85
- /* This function must return 0. */
86
- return 0 ;
85
+ /* This function must return 0. */
86
+ return 0 ;
87
87
}
0 commit comments