Skip to content

Commit 9698708

Browse files
committed
Add more brotli rules
1 parent 18aca99 commit 9698708

4 files changed

Lines changed: 379 additions & 1 deletion

File tree

rules/brotli/brotli/decode.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ typedef enum {
8787
BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_1, -14) SEPARATOR \
8888
BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_2, -15) SEPARATOR \
8989
\
90-
/* -16..-19 codes are reserved */ \
90+
/* -16..-18 codes are reserved */ \
9191
\
92+
BROTLI_ERROR_CODE(_ERROR_, DICTIONARY_NOT_SET, -19) SEPARATOR \
9293
BROTLI_ERROR_CODE(_ERROR_, INVALID_ARGUMENTS, -20) SEPARATOR \
9394
\
9495
/* Memory allocation problems */ \

rules/brotli/ir_unsafe.json

Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,76 @@
3939
"type": "::brotli_sys::BrotliEncoderMode"
4040
}
4141
},
42+
"f13": {
43+
"body": [
44+
{
45+
"text": "::brotli_sys::BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT"
46+
}
47+
],
48+
"return_type": {
49+
"type": "::brotli_sys::BrotliDecoderResult"
50+
}
51+
},
52+
"f14": {
53+
"body": [
54+
{
55+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE"
56+
}
57+
],
58+
"return_type": {
59+
"type": "::brotli_sys::BrotliDecoderErrorCode"
60+
}
61+
},
62+
"f15": {
63+
"body": [
64+
{
65+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE"
66+
}
67+
],
68+
"return_type": {
69+
"type": "::brotli_sys::BrotliDecoderErrorCode"
70+
}
71+
},
72+
"f16": {
73+
"body": [
74+
{
75+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET"
76+
}
77+
],
78+
"return_type": {
79+
"type": "::brotli_sys::BrotliDecoderErrorCode"
80+
}
81+
},
82+
"f17": {
83+
"body": [
84+
{
85+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME"
86+
}
87+
],
88+
"return_type": {
89+
"type": "::brotli_sys::BrotliDecoderErrorCode"
90+
}
91+
},
92+
"f18": {
93+
"body": [
94+
{
95+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_CL_SPACE"
96+
}
97+
],
98+
"return_type": {
99+
"type": "::brotli_sys::BrotliDecoderErrorCode"
100+
}
101+
},
102+
"f19": {
103+
"body": [
104+
{
105+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE"
106+
}
107+
],
108+
"return_type": {
109+
"type": "::brotli_sys::BrotliDecoderErrorCode"
110+
}
111+
},
42112
"f2": {
43113
"body": [
44114
{
@@ -138,6 +208,106 @@
138208
"type": "libc::c_int"
139209
}
140210
},
211+
"f20": {
212+
"body": [
213+
{
214+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT"
215+
}
216+
],
217+
"return_type": {
218+
"type": "::brotli_sys::BrotliDecoderErrorCode"
219+
}
220+
},
221+
"f21": {
222+
"body": [
223+
{
224+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1"
225+
}
226+
],
227+
"return_type": {
228+
"type": "::brotli_sys::BrotliDecoderErrorCode"
229+
}
230+
},
231+
"f22": {
232+
"body": [
233+
{
234+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2"
235+
}
236+
],
237+
"return_type": {
238+
"type": "::brotli_sys::BrotliDecoderErrorCode"
239+
}
240+
},
241+
"f23": {
242+
"body": [
243+
{
244+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_TRANSFORM"
245+
}
246+
],
247+
"return_type": {
248+
"type": "::brotli_sys::BrotliDecoderErrorCode"
249+
}
250+
},
251+
"f24": {
252+
"body": [
253+
{
254+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_DICTIONARY"
255+
}
256+
],
257+
"return_type": {
258+
"type": "::brotli_sys::BrotliDecoderErrorCode"
259+
}
260+
},
261+
"f25": {
262+
"body": [
263+
{
264+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS"
265+
}
266+
],
267+
"return_type": {
268+
"type": "::brotli_sys::BrotliDecoderErrorCode"
269+
}
270+
},
271+
"f26": {
272+
"body": [
273+
{
274+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_PADDING_1"
275+
}
276+
],
277+
"return_type": {
278+
"type": "::brotli_sys::BrotliDecoderErrorCode"
279+
}
280+
},
281+
"f27": {
282+
"body": [
283+
{
284+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_PADDING_2"
285+
}
286+
],
287+
"return_type": {
288+
"type": "::brotli_sys::BrotliDecoderErrorCode"
289+
}
290+
},
291+
"f28": {
292+
"body": [
293+
{
294+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_INVALID_ARGUMENTS"
295+
}
296+
],
297+
"return_type": {
298+
"type": "::brotli_sys::BrotliDecoderErrorCode"
299+
}
300+
},
301+
"f29": {
302+
"body": [
303+
{
304+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES"
305+
}
306+
],
307+
"return_type": {
308+
"type": "::brotli_sys::BrotliDecoderErrorCode"
309+
}
310+
},
141311
"f3": {
142312
"body": [
143313
{
@@ -148,6 +318,101 @@
148318
"type": "::brotli_sys::BrotliEncoderMode"
149319
}
150320
},
321+
"f30": {
322+
"body": [
323+
{
324+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS"
325+
}
326+
],
327+
"return_type": {
328+
"type": "::brotli_sys::BrotliDecoderErrorCode"
329+
}
330+
},
331+
"f31": {
332+
"body": [
333+
{
334+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP"
335+
}
336+
],
337+
"return_type": {
338+
"type": "::brotli_sys::BrotliDecoderErrorCode"
339+
}
340+
},
341+
"f32": {
342+
"body": [
343+
{
344+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1"
345+
}
346+
],
347+
"return_type": {
348+
"type": "::brotli_sys::BrotliDecoderErrorCode"
349+
}
350+
},
351+
"f33": {
352+
"body": [
353+
{
354+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2"
355+
}
356+
],
357+
"return_type": {
358+
"type": "::brotli_sys::BrotliDecoderErrorCode"
359+
}
360+
},
361+
"f34": {
362+
"body": [
363+
{
364+
"text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES"
365+
}
366+
],
367+
"return_type": {
368+
"type": "::brotli_sys::BrotliDecoderErrorCode"
369+
}
370+
},
371+
"f35": {
372+
"body": [
373+
{
374+
"text": "::brotli_sys::BrotliDecoderGetErrorCode("
375+
},
376+
{
377+
"placeholder": {
378+
"arg": 0,
379+
"access": "read"
380+
}
381+
},
382+
{
383+
"text": ")"
384+
}
385+
],
386+
"params": {
387+
"a0": {
388+
"type": "*const ::brotli_sys::BrotliDecoderState",
389+
"is_unsafe_pointer": true
390+
}
391+
},
392+
"return_type": {
393+
"type": "::brotli_sys::BrotliDecoderErrorCode"
394+
}
395+
},
396+
"f36": {
397+
"body": [
398+
{
399+
"text": "::brotli_sys::BrotliDecoderVersion()"
400+
}
401+
],
402+
"return_type": {
403+
"type": "u32"
404+
}
405+
},
406+
"f37": {
407+
"body": [
408+
{
409+
"text": "-19_i32 as ::brotli_sys::BrotliDecoderErrorCode"
410+
}
411+
],
412+
"return_type": {
413+
"type": "::brotli_sys::BrotliDecoderErrorCode"
414+
}
415+
},
151416
"f4": {
152417
"body": [
153418
{

rules/brotli/src.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,35 @@ BrotliDecoderResult f10() { return BROTLI_DECODER_RESULT_ERROR; }
5959
BrotliDecoderResult f11() { return BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT; }
6060

6161
BrotliEncoderMode f12() { return BROTLI_MODE_GENERIC; }
62+
63+
BrotliDecoderResult f13() { return BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT; }
64+
65+
BrotliDecoderErrorCode f14() { return BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE; }
66+
BrotliDecoderErrorCode f15() { return BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE; }
67+
BrotliDecoderErrorCode f16() { return BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET; }
68+
BrotliDecoderErrorCode f17() { return BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME; }
69+
BrotliDecoderErrorCode f18() { return BROTLI_DECODER_ERROR_FORMAT_CL_SPACE; }
70+
BrotliDecoderErrorCode f19() { return BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE; }
71+
BrotliDecoderErrorCode f20() { return BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT; }
72+
BrotliDecoderErrorCode f21() { return BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1; }
73+
BrotliDecoderErrorCode f22() { return BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2; }
74+
BrotliDecoderErrorCode f23() { return BROTLI_DECODER_ERROR_FORMAT_TRANSFORM; }
75+
BrotliDecoderErrorCode f24() { return BROTLI_DECODER_ERROR_FORMAT_DICTIONARY; }
76+
BrotliDecoderErrorCode f25() { return BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS; }
77+
BrotliDecoderErrorCode f26() { return BROTLI_DECODER_ERROR_FORMAT_PADDING_1; }
78+
BrotliDecoderErrorCode f27() { return BROTLI_DECODER_ERROR_FORMAT_PADDING_2; }
79+
BrotliDecoderErrorCode f28() { return BROTLI_DECODER_ERROR_INVALID_ARGUMENTS; }
80+
BrotliDecoderErrorCode f29() { return BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES; }
81+
BrotliDecoderErrorCode f30() { return BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS; }
82+
BrotliDecoderErrorCode f31() { return BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP; }
83+
BrotliDecoderErrorCode f32() { return BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1; }
84+
BrotliDecoderErrorCode f33() { return BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2; }
85+
BrotliDecoderErrorCode f34() { return BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES; }
86+
87+
BrotliDecoderErrorCode f35(const BrotliDecoderState *state) {
88+
return BrotliDecoderGetErrorCode(state);
89+
}
90+
91+
uint32_t f36() { return BrotliDecoderVersion(); }
92+
93+
BrotliDecoderErrorCode f37() { return BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET; }

0 commit comments

Comments
 (0)