Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzer details

Fuzzer: color_encoding_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1 0.72%
gold [1:9] 14 10.2%
yellow [10:29] 1 0.72%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 121 88.3%
All colors 137 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
1 19 jxl::(anonymous namespace)::ParseColorSpace(jxl::(anonymous namespace)::Tokenizer*, JxlColorEncoding*) call site: 00019

Runtime coverage analysis

Covered functions
23
Functions that are reachable but not covered
3
Reachable functions
48
Percentage of reachable functions covered
93.75%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/color_encoding_fuzzer.cc 2
/src/libjxl/lib/extras/dec/color_description.cc 15
/src/libjxl/lib/jxl/base/status.h 6

Fuzzer: rans_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 77 19.5%
gold [1:9] 7 1.78%
yellow [10:29] 8 2.03%
greenyellow [30:49] 2 0.50%
lawngreen 50+ 299 76.0%
All colors 393 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
14 25 3 :

['jxl::StatusOr ::StatusOr(jxl::Status)', 'jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

14 25 jxl::AlignedMemory::Create(JxlMemoryManagerStruct*,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:102
6 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

6 6 jpegxl::tools::TrackingMemoryManager::Alloc(void*,unsignedlong) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:34
6 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

6 6 jpegxl::tools::TrackingMemoryManager::Free(void*,void*) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:90
0 0 1 :

['int& std::__1::vector >::emplace_back (unsigned int const&)']

30 34 jxl::InitAliasTable(std::__1::vector >,unsignedint,unsignedlong,jxl::AliasTable::Entry*) call site: 00000 /src/libjxl/lib/jxl/ans_common.cc:54
0 0 None 14 25 jxl::AlignedMemory::Create(JxlMemoryManagerStruct*,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:96
0 0 None 12 59 jxl::DecodeContextMap(JxlMemoryManagerStruct*,std::__1::vector >*,unsignedlong*,jxl::BitReader*) call site: 00000 /src/libjxl/lib/jxl/dec_context_map.cc:86
0 0 None 6 6 jpegxl::tools::TrackingMemoryManager::Free(void*,void*) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:78
0 0 None 0 24 jxl::(anonymousnamespace)::VerifyContextMap(std::__1::vector >const&,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/dec_context_map.cc:32
0 0 None 0 24 jpegxl::tools::TrackingMemoryManager::Reset() call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:108
0 0 None 0 13 jpegxl::tools::TrackingMemoryManager::Reset() call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:111
0 0 None 0 2 jxl::Bundle::Init(jxl::Fields*) call site: 00000 /src/libjxl/lib/jxl/fields.cc:368
0 0 None 0 2 jxl::MemoryManagerInit(JxlMemoryManagerStruct*,JxlMemoryManagerStructconst*) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:44

Runtime coverage analysis

Covered functions
179
Functions that are reachable but not covered
30
Reachable functions
212
Percentage of reachable functions covered
85.85%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/rans_fuzzer.cc 4
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 6
/src/libjxl/lib/jxl/base/status.h 26
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/jxl/base/span.h 3
/src/libjxl/lib/jxl/dec_bit_reader.h 8
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/dec_ans.h 8
/src/libjxl/lib/jxl/memory_manager_internal.h 3
/src/libjxl/lib/jxl/dec_ans.cc 11
/src/libjxl/lib/jxl/field_encodings.h 2
/src/libjxl/lib/jxl/fields.cc 5
/src/libjxl/lib/jxl/fields.h 10
/src/libjxl/lib/jxl/dec_context_map.cc 2
/src/libjxl/lib/jxl/dec_huffman.cc 3
/src/libjxl/lib/jxl/huffman_table.cc 4
/src/libjxl/lib/jxl/ans_common.cc 1
/src/libjxl/lib/jxl/inverse_mtf-inl.h 3
/src/libjxl/third_party/highway/hwy/base.h 1
/src/libjxl/lib/jxl/base/common.h 1

Fuzzer: jpegli_dec_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 87 19.8%
gold [1:9] 17 3.88%
yellow [10:29] 11 2.51%
greenyellow [30:49] 2 0.45%
lawngreen 50+ 321 73.2%
All colors 438 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
61 61 6 :

['std::__1::__math::round[abi:nn180100](float)', 'float const& std::__1::max[abi:nn180100] (float const&, float const&)', 'float const& std::__1::min[abi:nn180100] (float const&, float const&)', 'jpegli::N_SSE4::LimitError(float)', 'jpegli::N_SSE4::DitherRow(jpeg_decompress_struct*, float*, int, unsigned long, unsigned long)', 'jpegli::LookupColorIndex(jpeg_decompress_struct*, unsigned char const*)']

61 77 jpegli::N_SSE4::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) call site: 00000 /src/libjxl/lib/jpegli/render.cc:205
61 61 6 :

['jpegli::N_SSE2::DitherRow(jpeg_decompress_struct*, float*, int, unsigned long, unsigned long)', 'jpegli::N_SSE2::LimitError(float)', 'std::__1::__math::round[abi:nn180100](float)', 'float const& std::__1::max[abi:nn180100] (float const&, float const&)', 'float const& std::__1::min[abi:nn180100] (float const&, float const&)', 'jpegli::LookupColorIndex(jpeg_decompress_struct*, unsigned char const*)']

61 77 jpegli::N_SSE2::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) call site: 00000 /src/libjxl/lib/jpegli/render.cc:205
61 61 6 :

['jpegli::N_AVX2::DitherRow(jpeg_decompress_struct*, float*, int, unsigned long, unsigned long)', 'jpegli::N_AVX2::LimitError(float)', 'std::__1::__math::round[abi:nn180100](float)', 'float const& std::__1::max[abi:nn180100] (float const&, float const&)', 'float const& std::__1::min[abi:nn180100] (float const&, float const&)', 'jpegli::LookupColorIndex(jpeg_decompress_struct*, unsigned char const*)']

61 74 jpegli::N_AVX2::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) call site: 00000 /src/libjxl/lib/jpegli/render.cc:205
0 4 1 :

['jpegli::FormatString(char*, char const*, ...)']

0 4 short(**jpegli::(anonymousnamespace)::AccessVirtualArray (jpeg_common_struct*,jvirt_barray_control*,unsignedint,unsignedint,int))[64] call site: 00000 /src/libjxl/lib/jpegli/memory_manager.cc:126
0 0 None 727 1329 jpegli_start_decompress call site: 00254 /src/libjxl/lib/jpegli/decode.cc:800
0 0 None 18 468 jpegli::ConsumeInput(jpeg_decompress_struct*) call site: 00000 /src/libjxl/lib/jpegli/decode.cc:358
0 0 None 11 11 jpegli::ChooseInverseTransform(jpeg_decompress_struct*) call site: 00000 /src/libjxl/lib/jpegli/idct.cc:693
0 0 None 5 7 hwy::(anonymousnamespace)::x86::DetectTargets() call site: 00000 /src/libjxl/third_party/highway/hwy/targets.cc:341
0 0 None 5 7 hwy::(anonymousnamespace)::x86::DetectTargets() call site: 00000 /src/libjxl/third_party/highway/hwy/targets.cc:344
0 0 None 5 7 hwy::(anonymousnamespace)::x86::DetectTargets() call site: 00000 /src/libjxl/third_party/highway/hwy/targets.cc:347
0 0 None 5 5 hwy::(anonymousnamespace)::x86::DetectTargets() call site: 00000 /src/libjxl/third_party/highway/hwy/targets.cc:389
0 0 None 2 11 jpegli_CreateDecompress call site: 00025 /src/libjxl/lib/jpegli/decode.cc:555

Runtime coverage analysis

Covered functions
836
Functions that are reachable but not covered
73
Reachable functions
317
Percentage of reachable functions covered
76.97%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/jpegli_dec_fuzzer.cc 9
/src/libjxl/third_party/highway/hwy/targets.cc 8
/src/libjxl/third_party/highway/hwy/targets.h 4
/src/libjxl/lib/jpegli/error.cc 2
/src/libjxl/lib/jpegli/decode.cc 25
/src/libjxl/lib/jpegli/memory_manager.cc 2
/src/libjxl/lib/jpegli/decode_internal.h 2
/src/libjxl/lib/jpegli/decode_scan.cc 15
/src/libjxl/lib/jxl/base/status.h 7
/src/libjxl/lib/jpegli/common_internal.h 9
/src/libjxl/lib/jpegli/decode_marker.cc 14
/src/libjxl/lib/jpegli/memory_manager.h 23
/src/libjxl/lib/jpegli/common.cc 5
/src/libjxl/lib/jpegli/huffman.cc 4
/src/libjxl/lib/jpegli/simd.cc 1
/src/libjxl/lib/jpegli/render.cc 13
/src/libjxl/lib/jpegli/idct.cc 1
/src/libjxl/lib/jpegli/color_transform.cc 2
/src/libjxl/lib/jpegli/color_quantize.cc 15
/src/libjxl/lib/jpegli/upsample.cc 2

Fuzzer: transforms_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 84 15.4%
gold [1:9] 8 1.47%
yellow [10:29] 0 0.0%
greenyellow [30:49] 2 0.36%
lawngreen 50+ 448 82.6%
All colors 542 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
14 25 3 :

['jxl::StatusOr ::StatusOr(jxl::Status)', 'jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

14 25 jxl::AlignedMemory::Create(JxlMemoryManagerStruct*,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:102
6 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

6 6 jpegxl::tools::TrackingMemoryManager::Alloc(void*,unsignedlong) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:34
6 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

6 6 jpegxl::tools::TrackingMemoryManager::Free(void*,void*) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:90
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_1const&,charconst*)::{lambda(unsignedlong)#1},jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_1>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_1const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_1const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_2const&,charconst*)::{lambda(unsignedlong)#1},jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_2>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_2const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_2const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_3const&,charconst*)::{lambda(unsignedlong)#1},jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_3>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_3const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*)::$_3const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::InvRCT(jxl::Image&,unsignedlong,unsignedlong,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::N_AVX2::InvRCT(jxl::Image&,unsignedlong,unsignedlong,jxl::ThreadPool*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::InvRCT(jxl::Image&,unsignedlong,unsignedlong,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::N_AVX2::InvRCT(jxl::Image&,unsignedlong,unsignedlong,jxl::ThreadPool*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::InvHSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_1const&,charconst*)::{lambda(unsignedlong)#1},jxl::N_AVX2::InvHSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_1>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::InvHSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_1const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::N_AVX2::InvHSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_1const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::InvVSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::N_AVX2::InvVSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::InvVSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::N_AVX2::InvVSqueeze(jxl::Image&,unsignedint,unsignedint,jxl::ThreadPool*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:66
0 4 1 :

['jxl::Status::Status(jxl::StatusCode)']

0 11 jxl::detail::PlaneBase::Allocate(JxlMemoryManagerStruct*,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/image.cc:85
0 0 None 25 805 jxl::InvPalette(jxl::Image&,unsignedint,unsignedint,unsignedint,jxl::Predictor,jxl::weighted::Headerconst&,jxl::ThreadPool*) call site: 00000 /src/libjxl/lib/jxl/modular/transform/palette.cc:37

Runtime coverage analysis

Covered functions
379
Functions that are reachable but not covered
57
Reachable functions
402
Percentage of reachable functions covered
85.82%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/transforms_fuzzer.cc 6
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 7
/src/libjxl/lib/jxl/base/status.h 44
/src/libjxl/lib/jxl/base/span.h 3
/src/libjxl/lib/jxl/dec_bit_reader.h 8
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/jxl/base/random.h 3
/src/libjxl/lib/jxl/base/common.h 3
/src/libjxl/lib/jxl/modular/modular_image.cc 6
/src/libjxl/lib/jxl/image.h 9
/src/libjxl/lib/jxl/image.cc 3
/src/libjxl/lib/jxl/simd_util.cc 1
/src/libjxl/third_party/highway/hwy/targets.cc 1
/src/libjxl/third_party/highway/hwy/targets.h 1
/src/libjxl/lib/jxl/memory_manager_internal.h 4
/src/libjxl/lib/jxl/modular/modular_image.h 9
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 2
/src/libjxl/lib/jxl/field_encodings.h 3
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 8
/src/libjxl/lib/jxl/fields.cc 5
/src/libjxl/lib/jxl/fields.h 10
/src/libjxl/lib/jxl/modular/transform/transform.cc 4
/src/libjxl/lib/jxl/modular/transform/squeeze.cc 4
/src/libjxl/lib/jxl/modular/transform/palette.cc 6
/src/libjxl/lib/jxl/modular/options.h 2
/src/libjxl/lib/jxl/enc_ans_params.h 2
/src/libjxl/lib/jxl/modular/transform/transform.h 2
/src/libjxl/lib/jxl/modular/transform/rct.cc 1
/src/libjxl/lib/jxl/base/data_parallel.h 33
/src/libjxl/lib/jxl/modular/transform/palette.h 2
/usr/local/bin/../include/c++/v1/stdlib.h 1
/src/libjxl/lib/jxl/modular/encoding/encoding.h 1

Fuzzer: icc_codec_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 24 3.33%
gold [1:9] 4 0.55%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 691 96.1%
All colors 719 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
14 25 3 :

['jxl::StatusOr ::StatusOr(jxl::Status)', 'jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

14 25 jxl::AlignedMemory::Create(JxlMemoryManagerStruct*,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:102
6 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

6 6 jpegxl::tools::TrackingMemoryManager::Alloc(void*,unsignedlong) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:34
6 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

6 6 jpegxl::tools::TrackingMemoryManager::Free(void*,void*) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:90
0 4 1 :

['jxl::Status::Status(jxl::StatusCode)']

10 21 jxl::PredictICC(unsignedcharconst*,unsignedlong,jxl::PaddedBytes*) call site: 00000 /src/libjxl/lib/jxl/enc_icc_codec.cc:127
0 0 None 14 25 jxl::AlignedMemory::Create(JxlMemoryManagerStruct*,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:96
0 0 None 6 6 jpegxl::tools::TrackingMemoryManager::Free(void*,void*) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:78
0 0 None 0 24 jpegxl::tools::TrackingMemoryManager::Reset() call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:108
0 0 None 0 13 jpegxl::tools::TrackingMemoryManager::Reset() call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:111
0 0 None 0 11 jxl::(anonymousnamespace)::PredictAndShuffle(unsignedlong,unsignedlong,int,unsignedlong,unsignedcharconst*,unsignedlong,unsignedlong*,jxl::PaddedBytes*) call site: 00000 /src/libjxl/lib/jxl/enc_icc_codec.cc:70
0 0 None 0 2 jxl::MemoryManagerInit(JxlMemoryManagerStruct*,JxlMemoryManagerStructconst*) call site: 00000 /src/libjxl/lib/jxl/memory_manager_internal.cc:44
0 0 None 0 2 jpegxl::tools::TrackingMemoryManager::Reset() call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:114
0 0 None 0 0 jpegxl::tools::TrackingMemoryManager::Alloc(void*,unsignedlong) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:43

Runtime coverage analysis

Covered functions
88
Functions that are reachable but not covered
16
Reachable functions
165
Percentage of reachable functions covered
90.3%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/icc_codec_fuzzer.cc 3
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 6
/src/libjxl/lib/jxl/base/status.h 26
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/jxl/padded_bytes.h 20
/src/libjxl/lib/jxl/memory_manager_internal.h 3
/src/libjxl/lib/jxl/icc_codec.cc 3
/src/libjxl/lib/jxl/icc_codec_common.cc 12
/src/libjxl/lib/jxl/enc_icc_codec.cc 5

Fuzzer: fields_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 35 14.5%
gold [1:9] 37 15.3%
yellow [10:29] 12 4.97%
greenyellow [30:49] 9 3.73%
lawngreen 50+ 148 61.4%
All colors 241 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jxl::detail::ToString(JxlTransferFunction) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms_internal.h:822
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::cms::CustomTransferFunction::SetGamma(double) call site: 00000 /src/libjxl/lib/jxl/cms/color_encoding_cms.h:252
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::BitReader::Close() call site: 00000 /src/libjxl/lib/jxl/dec_bit_reader.h:245
0 4 1 :

['jxl::Status::Status(jxl::StatusCode)']

0 11 jxl::PrimariesToXYZ(float,float,float,float,float,float,float,float,std::__1::array ,3ul>&) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms_internal.h:46
0 0 2 :

['std::__1::vector >::back[abi:nn180100]()', 'std::__1::vector >::empty[abi:nn180100]() const']

14 1037 jxl::jpeg::JPEGData::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/jpeg/jpeg_data.cc:77
0 0 None 2 39 jxl::jpeg::JPEGData::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/jpeg/jpeg_data.cc:372
0 0 None 2 2 jxl::cms::ColorEncoding::ToExternal()const call site: 00000 /src/libjxl/lib/jxl/cms/color_encoding_cms.h:546
0 0 None 0 362 jxl::FrameHeader::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/frame_header.cc:241
0 0 None 0 30 jxl::BlendingInfo::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/frame_header.cc:74
0 0 None 0 19 jxl::FrameHeader::default_xsize()const call site: 00000 /src/libjxl/lib/jxl/frame_header.h:452
0 0 None 0 16 jxl::cms::ColorEncoding::ToExternal()const call site: 00000 /src/libjxl/lib/jxl/cms/color_encoding_cms.h:562
0 0 None 0 11 jxl::jpeg::JPEGData::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/jpeg/jpeg_data.cc:150

Runtime coverage analysis

Covered functions
291
Functions that are reachable but not covered
34
Reachable functions
156
Percentage of reachable functions covered
78.21%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/fields_fuzzer.cc 2
/src/libjxl/lib/jxl/image_metadata.h 5
/src/libjxl/lib/jxl/image_metadata.cc 7
/src/libjxl/lib/jxl/field_encodings.h 2
/src/libjxl/lib/jxl/fields.cc 5
/src/libjxl/lib/jxl/fields.h 10
/src/libjxl/lib/jxl/base/status.h 8
/src/libjxl/lib/jxl/color_encoding_internal.cc 3
/src/libjxl/lib/jxl/cms/color_encoding_cms.h 4
/src/libjxl/lib/jxl/headers.cc 4
/src/libjxl/lib/jxl/color_encoding_internal.h 1
/src/libjxl/lib/jxl/base/span.h 3
/src/libjxl/lib/jxl/dec_bit_reader.h 5
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/frame_header.cc 5
/src/libjxl/lib/jxl/loop_filter.cc 1
/src/libjxl/lib/jxl/frame_header.h 1
/src/libjxl/lib/jxl/jpeg/jpeg_data.h 2
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 1
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 1
/src/libjxl/lib/jxl/modular/encoding/encoding.h 1
/src/libjxl/lib/jxl/dec_ans.cc 1
/src/libjxl/lib/jxl/dec_ans.h 1
/src/libjxl/lib/jxl/quantizer.h 1
/src/libjxl/lib/jxl/modular/transform/transform.cc 3
/src/libjxl/lib/jxl/modular/transform/transform.h 1

Fuzzer: decode_basic_info_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3094 65.2%
gold [1:9] 46 0.97%
yellow [10:29] 18 0.37%
greenyellow [30:49] 4 0.08%
lawngreen 50+ 1577 33.2%
All colors 4739 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
5 5 1 :

['JxlDecoder::JbrdNeedMoreBoxes() const']

5 9 JxlDecoderProcessInput call site: 04692 /src/libjxl/lib/jxl/decode.cc:2061
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jxl::detail::ToString(JxlTransferFunction) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms_internal.h:822
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jpegxl::tools::TrackingMemoryManager::Alloc(void*,unsignedlong) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:34
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jpegxl::tools::TrackingMemoryManager::Free(void*,void*) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:90
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::cms::CustomTransferFunction::SetGamma(double) call site: 00000 /src/libjxl/lib/jxl/cms/color_encoding_cms.h:252
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::BitReader::Close() call site: 00000 /src/libjxl/lib/jxl/dec_bit_reader.h:245
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::VisitBlendMode(jxl::Visitor*,jxl::BlendMode,jxl::BlendMode*) call site: 00000 /src/libjxl/lib/jxl/frame_header.cc:42
0 11 2 :

['jxl::Status::Status(jxl::StatusCode)', 'jxl::StatusMessage(jxl::Status, char const*, ...)']

0 11 jxl::LoopFilter::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/loop_filter.cc:91
0 8 1 :

['JxlDecoder::AdvanceInput(unsigned long)']

0 8 HandleBoxes(JxlDecoder*) call site: 00000 /src/libjxl/lib/jxl/decode.cc:1990
0 4 1 :

['jxl::Status::Status(jxl::StatusCode)']

0 11 jxl::PrimariesToXYZ(float,float,float,float,float,float,float,float,std::__1::array ,3ul>&) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms_internal.h:46
0 4 1 :

['jxl::Debug(char const*, ...)']

0 4 JxlDecoder::GetCodestreamInput(jxl::Span *) call site: 00000 /src/libjxl/lib/jxl/decode.cc:637
0 2 1 :

['jxl::Status::Status(bool)']

0 2 jxl::FrameHeader::VisitFields(jxl::Visitor*) call site: 00000 /src/libjxl/lib/jxl/frame_header.cc:216

Runtime coverage analysis

Covered functions
564
Functions that are reachable but not covered
1447
Reachable functions
2323
Percentage of reachable functions covered
37.71%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/decode_basic_info_fuzzer.cc 4
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 9
/src/libjxl/lib/jxl/base/status.h 177
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/jxl/decode.cc 42
/src/libjxl/lib/jxl/image_metadata.h 22
/src/libjxl/lib/jxl/image_metadata.cc 5
/src/libjxl/lib/jxl/field_encodings.h 9
/src/libjxl/lib/jxl/fields.cc 9
/src/libjxl/lib/jxl/fields.h 10
/src/libjxl/lib/jxl/color_encoding_internal.cc 6
/src/libjxl/lib/jxl/cms/color_encoding_cms.h 28
/src/libjxl/lib/jxl/headers.cc 7
/src/libjxl/lib/jxl/box_content_decoder.cc 4
/src/libjxl/lib/jxl/decode_to_jpeg.h 8
/src/libjxl/lib/jxl/icc_codec.h 1
/src/libjxl/lib/jxl/padded_bytes.h 20
/src/libjxl/lib/jxl/memory_manager_internal.h 10
/src/libjxl/lib/jxl/color_encoding_internal.h 25
/src/libjxl/lib/jxl/headers.h 8
/src/libjxl/third_party/brotli/c/dec/decode.c 40
/src/libjxl/third_party/brotli/c/dec/state.c 5
/src/libjxl/third_party/brotli/c/dec/bit_reader.c 2
/src/libjxl/third_party/brotli/c/common/shared_dictionary.c 2
/src/libjxl/third_party/brotli/c/common/dictionary.c 1
/src/libjxl/third_party/brotli/c/common/transform.c 4
/src/libjxl/third_party/brotli/c/dec/huffman.c 3
/src/libjxl/lib/jxl/decode_to_jpeg.cc 7
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data_writer.cc 35
/src/libjxl/lib/jxl/jpeg/dec_jpeg_output_chunk.h 5
/src/libjxl/lib/jxl/jpeg/dec_jpeg_serialization_state.h 1
/src/libjxl/lib/jxl/jpeg/jpeg_data.cc 2
/src/libjxl/lib/jxl/base/common.h 5
/src/libjxl/lib/jxl/base/span.h 10
/src/libjxl/lib/jxl/dec_bit_reader.h 10
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/icc_codec.cc 9
/src/libjxl/lib/jxl/dec_ans.cc 11
/src/libjxl/lib/jxl/dec_ans.h 16
/src/libjxl/lib/jxl/dec_context_map.cc 2
/src/libjxl/lib/jxl/dec_huffman.cc 3
/src/libjxl/lib/jxl/huffman_table.cc 4
/src/libjxl/lib/jxl/ans_common.cc 1
/src/libjxl/lib/jxl/inverse_mtf-inl.h 3
/src/libjxl/third_party/highway/hwy/base.h 1
/src/libjxl/lib/jxl/icc_codec_common.cc 15
/src/libjxl/lib/jxl/dec_xyb.cc 3
/src/libjxl/lib/jxl/cms/jxl_cms_internal.h 37
/usr/local/bin/../include/c++/v1/stdlib.h 3
/src/libjxl/lib/jxl/base/matrix_ops.h 3
/src/libjxl/lib/jxl/cms/opsin_params.h 1
/src/libjxl/lib/jxl/cms/transfer_functions.h 5
/src/libjxl/lib/jxl/cms/tone_mapping.h 9
/src/libjxl/lib/jxl/opsin_params.cc 1
/src/libjxl/lib/jxl/image_bundle.h 10
/src/libjxl/lib/jxl/dec_frame.cc 18
/src/libjxl/lib/jxl/quant_weights.cc 25
/src/libjxl/lib/jxl/quant_weights.h 22
/src/libjxl/lib/jxl/frame_header.cc 2
/src/libjxl/lib/jxl/frame_header.h 20
/src/libjxl/lib/jxl/frame_dimensions.h 4
/src/libjxl/lib/jxl/image.h 45
/src/libjxl/lib/jxl/toc.cc 2
/src/libjxl/lib/jxl/coeff_order.cc 5
/src/libjxl/lib/jxl/lehmer_code.h 3
/src/libjxl/lib/jxl/dec_frame.h 17
/src/libjxl/lib/jxl/loop_filter.h 1
/src/libjxl/lib/jxl/passes_state.cc 1
/src/libjxl/lib/jxl/dec_patch_dictionary.h 4
/src/libjxl/lib/jxl/ac_strategy.cc 3
/src/libjxl/lib/jxl/ac_strategy.h 13
/src/libjxl/lib/jxl/image.cc 3
/src/libjxl/lib/jxl/simd_util.cc 1
/src/libjxl/third_party/highway/hwy/targets.cc 1
/src/libjxl/third_party/highway/hwy/targets.h 1
/src/libjxl/lib/jxl/chroma_from_luma.cc 2
/src/libjxl/lib/jxl/chroma_from_luma.h 12
/src/libjxl/lib/jxl/image_ops.h 13
/src/libjxl/lib/jxl/dec_cache.h 7
/src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc 1
/src/libjxl/lib/jxl/dec_modular.h 10
/src/libjxl/lib/jxl/dec_patch_dictionary.cc 6
/src/libjxl/lib/jxl/pack_signed.h 1
/src/libjxl/lib/jxl/splines.cc 18
/src/libjxl/lib/jxl/splines.h 7
/src/libjxl/lib/jxl/dec_noise.cc 3
/src/libjxl/lib/jxl/quantizer.cc 1
/src/libjxl/lib/jxl/quantizer.h 2
/src/libjxl/lib/jxl/entropy_coder.cc 1
/src/libjxl/lib/jxl/ac_context.h 4
/src/libjxl/lib/jxl/dec_modular.cc 16
/src/libjxl/lib/jxl/modular/encoding/dec_ma.cc 3
/src/libjxl/lib/jxl/modular/modular_image.cc 7
/src/libjxl/lib/jxl/modular/modular_image.h 10
/src/libjxl/lib/jxl/modular/options.h 2
/src/libjxl/lib/jxl/enc_ans_params.h 2
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 12
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 13
/src/libjxl/lib/jxl/modular/transform/transform.cc 4
/src/libjxl/lib/jxl/modular/transform/squeeze.cc 4
/src/libjxl/lib/jxl/modular/transform/palette.cc 6
/src/libjxl/lib/jxl/base/scope_guard.h 4
/src/libjxl/lib/jxl/modular/encoding/encoding.h 2
/src/libjxl/lib/jxl/modular/transform/transform.h 2
/src/libjxl/lib/jxl/modular/transform/rct.cc 1
/src/libjxl/lib/jxl/base/data_parallel.h 77
/src/libjxl/lib/jxl/modular/transform/palette.h 2
/src/libjxl/lib/jxl/base/rect.h 23
/src/libjxl/lib/jxl/compressed_dc.cc 2
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.h 7
/src/libjxl/lib/jxl/epf.cc 1
/src/libjxl/lib/jxl/dec_cache.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_chroma_upsampling.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.cc 6
/src/libjxl/lib/jxl/render_pipeline/stage_gaborish.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_epf.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_patches.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_splines.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_noise.cc 2
/src/libjxl/lib/jxl/render_pipeline/stage_write.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_ycbcr.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_xyb.cc 1
/src/libjxl/lib/jxl/blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_from_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_spot.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_to_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_cms.cc 1
/src/libjxl/lib/jxl/dct_util.h 2
/src/libjxl/lib/jxl/dec_group.cc 2
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data.cc 3

Fuzzer: djxl_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 491 9.95%
gold [1:9] 191 3.87%
yellow [10:29] 47 0.95%
greenyellow [30:49] 79 1.60%
lawngreen 50+ 4122 83.6%
All colors 4930 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
9 9 1 :

['Shift']

9 9 BrotliTransformDictionaryWord call site: 00301 /src/libjxl/third_party/brotli/c/common/transform.c:271
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jxl::detail::ToString(JxlTransferFunction) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms_internal.h:822
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jxl::JpegOrder(jxl::ColorTransform,bool) call site: 00000 /src/libjxl/lib/jxl/frame_header.h:68
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jxl::GetUpsamplingStage(jxl::CustomTransformDataconst&,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc:195
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jpegxl::tools::TrackingMemoryManager::Alloc(void*,unsignedlong) call site: 00000 /src/libjxl/tools/tracking_memory_manager.cc:34
0 2199 2 :

['jxl::ThreadPool::RunCallState ::CallInitFunc(void*, unsigned long)', 'jxl::ThreadPool::RunCallState ::CallDataFunc(void*, unsigned int, unsigned long)']

0 2225 jxl::Statusjxl::ThreadPool::Run (unsignedint,unsignedint,jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfoconst*,unsignedlong,jxl::FrameDecoder::SectionStatus*)::$_1const&,jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfoconst*,unsignedlong,jxl::FrameDecoder::SectionStatus*)::$_2const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:57
0 2195 2 :

['jxl::ThreadPool::RunCallState ::CallDataFunc(void*, unsigned int, unsigned long)', 'jxl::ThreadPool::RunCallState ::CallInitFunc(void*, unsigned long)']

0 2221 jxl::Statusjxl::ThreadPool::Run (unsignedint,unsignedint,jxl::FrameDecoder::Flush()::$_0const&,jxl::FrameDecoder::Flush()::$_1const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:57
0 2100 2 :

['jxl::ThreadPool::RunCallState (jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfo const*, unsigned long, jxl::FrameDecoder::SectionStatus*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfo const*, unsigned long, jxl::FrameDecoder::SectionStatus*)::$_0>::CallDataFunc(void*, unsigned int, unsigned long)', 'jxl::ThreadPool::RunCallState (jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfo const*, unsigned long, jxl::FrameDecoder::SectionStatus*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfo const*, unsigned long, jxl::FrameDecoder::SectionStatus*)::$_0>::CallInitFunc(void*, unsigned long)']

0 2126 jxl::Statusjxl::ThreadPool::Run (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfoconst*,unsignedlong,jxl::FrameDecoder::SectionStatus*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfoconst*,unsignedlong,jxl::FrameDecoder::SectionStatus*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool (jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfoconst*,unsignedlong,jxl::FrameDecoder::SectionStatus*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::FrameDecoder::ProcessSections(jxl::FrameDecoder::SectionInfoconst*,unsignedlong,jxl::FrameDecoder::SectionStatus*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:57
0 42 2 :

['jxl::ThreadPool::RunCallState *, jxl::ThreadPool*)::$_0>(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0>::CallInitFunc(void*, unsigned long)', 'jxl::ThreadPool::RunCallState *, jxl::ThreadPool*)::$_0>(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0>::CallDataFunc(void*, unsigned int, unsigned long)']

0 68 jxl::Statusjxl::ThreadPool::Run *,jxl::ThreadPool*)::$_0>(jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool *,jxl::ThreadPool*)::$_0>(jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::N_SSE4::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:57
0 42 2 :

['jxl::ThreadPool::RunCallState *, jxl::ThreadPool*)::$_0>(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0>::CallInitFunc(void*, unsigned long)', 'jxl::ThreadPool::RunCallState *, jxl::ThreadPool*)::$_0>(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0>::CallDataFunc(void*, unsigned int, unsigned long)']

0 68 jxl::Statusjxl::ThreadPool::Run *,jxl::ThreadPool*)::$_0>(jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool *,jxl::ThreadPool*)::$_0>(jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::N_AVX2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:57
0 42 2 :

['jxl::ThreadPool::RunCallState *, jxl::ThreadPool*)::$_0>(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0>::CallInitFunc(void*, unsigned long)', 'jxl::ThreadPool::RunCallState *, jxl::ThreadPool*)::$_0>(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*, float const*, jxl::Image3 *, jxl::ThreadPool*)::$_0>::CallDataFunc(void*, unsigned int, unsigned long)']

0 68 jxl::Statusjxl::ThreadPool::Run *,jxl::ThreadPool*)::$_0>(jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1},jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0>(unsignedint,unsignedint,jxl::RunOnPool *,jxl::ThreadPool*)::$_0>(jxl::ThreadPool*,unsignedint,unsignedint,jxl::ThreadPoolNoInitconst&,jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*)::{lambda(unsignedlong)#1}const&,jxl::N_SSE2::AdaptiveDCSmoothing(JxlMemoryManagerStruct*,floatconst*,jxl::Image3 *,jxl::ThreadPool*)::$_0const&,charconst*) call site: 00000 /src/libjxl/lib/jxl/base/data_parallel.h:57
0 12 11 :

['std::__1::unique_ptr >::operator=[abi:nn180100](std::__1::unique_ptr >&&)', 'jxl::ColorEncoding::Tf()', 'std::__1::unique_ptr >::~unique_ptr[abi:nn180100]()', 'jxl::cms::CustomTransferFunction::IsHLG() const', 'std::__1::unique_ptr >::operator bool[abi:nn180100]() const', 'std::__1::unique_ptr >, std::__1::default_delete > > >::operator bool[abi:nn180100]() const', 'std::__1::unique_ptr >, std::__1::default_delete > > >::operator=[abi:nn180100](std::__1::unique_ptr >, std::__1::default_delete > > >&&)', 'std::__1::__unique_if > >::__unique_single std::__1::make_unique[abi:nn180100] >, std::__1::array , std::__1::array , std::__1::array &>(std::__1::array &&, std::__1::array &&, std::__1::array &)', 'jxl::cms::CustomTransferFunction::IsPQ() const', 'std::__1::__unique_if ::__unique_single std::__1::make_unique[abi:nn180100] &>(float&, float&, std::__1::array &)', 'std::__1::unique_ptr >, std::__1::default_delete > > >::~unique_ptr[abi:nn180100]()']

0 12 jxl::N_SSE4::ToneMappingStage::ToneMappingStage(jxl::OutputEncodingInfo) call site: 00000 /src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc:36

Runtime coverage analysis

Covered functions
4786
Functions that are reachable but not covered
235
Reachable functions
2429
Percentage of reachable functions covered
90.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/djxl_fuzzer.cc 15
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 8
/src/libjxl/lib/jxl/base/status.h 177
/src/libjxl/third_party/highway/hwy/targets.cc 8
/src/libjxl/third_party/highway/hwy/targets.h 4
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/threads/thread_parallel_runner.cc 4
/src/libjxl/lib/include/jxl/thread_parallel_runner_cxx.h 1
/src/libjxl/lib/threads/thread_parallel_runner_internal.cc 3
/src/libjxl/lib/threads/thread_parallel_runner_internal.h 1
/src/libjxl/lib/include/jxl/decode_cxx.h 1
/src/libjxl/lib/jxl/decode.cc 67
/src/libjxl/lib/jxl/image_metadata.h 22
/src/libjxl/lib/jxl/image_metadata.cc 5
/src/libjxl/lib/jxl/field_encodings.h 9
/src/libjxl/lib/jxl/fields.cc 9
/src/libjxl/lib/jxl/fields.h 10
/src/libjxl/lib/jxl/color_encoding_internal.cc 6
/src/libjxl/lib/jxl/cms/color_encoding_cms.h 28
/src/libjxl/lib/jxl/headers.cc 7
/src/libjxl/lib/jxl/box_content_decoder.cc 3
/src/libjxl/lib/jxl/decode_to_jpeg.h 9
/src/libjxl/lib/jxl/icc_codec.h 1
/src/libjxl/lib/jxl/padded_bytes.h 20
/src/libjxl/lib/jxl/memory_manager_internal.h 10
/src/libjxl/lib/jxl/color_encoding_internal.h 25
/src/libjxl/lib/jxl/headers.h 8
/src/libjxl/third_party/brotli/c/dec/decode.c 40
/src/libjxl/third_party/brotli/c/dec/state.c 5
/src/libjxl/third_party/brotli/c/dec/bit_reader.c 2
/src/libjxl/third_party/brotli/c/common/shared_dictionary.c 2
/src/libjxl/third_party/brotli/c/common/dictionary.c 1
/src/libjxl/third_party/brotli/c/common/transform.c 4
/src/libjxl/third_party/brotli/c/dec/huffman.c 3
/src/libjxl/lib/jxl/decode_to_jpeg.cc 7
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data_writer.cc 35
/src/libjxl/lib/jxl/jpeg/dec_jpeg_output_chunk.h 5
/src/libjxl/lib/jxl/jpeg/dec_jpeg_serialization_state.h 1
/src/libjxl/lib/jxl/jpeg/jpeg_data.cc 2
/src/libjxl/lib/jxl/base/common.h 5
/src/libjxl/lib/jxl/base/span.h 10
/src/libjxl/lib/jxl/dec_bit_reader.h 10
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/icc_codec.cc 9
/src/libjxl/lib/jxl/dec_ans.cc 11
/src/libjxl/lib/jxl/dec_ans.h 16
/src/libjxl/lib/jxl/dec_context_map.cc 2
/src/libjxl/lib/jxl/dec_huffman.cc 3
/src/libjxl/lib/jxl/huffman_table.cc 4
/src/libjxl/lib/jxl/ans_common.cc 1
/src/libjxl/lib/jxl/inverse_mtf-inl.h 3
/src/libjxl/third_party/highway/hwy/base.h 1
/src/libjxl/lib/jxl/icc_codec_common.cc 15
/src/libjxl/lib/jxl/dec_xyb.cc 3
/src/libjxl/lib/jxl/cms/jxl_cms_internal.h 37
/usr/local/bin/../include/c++/v1/stdlib.h 3
/src/libjxl/lib/jxl/base/matrix_ops.h 3
/src/libjxl/lib/jxl/cms/opsin_params.h 1
/src/libjxl/lib/jxl/cms/transfer_functions.h 5
/src/libjxl/lib/jxl/cms/tone_mapping.h 9
/src/libjxl/lib/jxl/opsin_params.cc 1
/src/libjxl/lib/jxl/image_bundle.h 10
/src/libjxl/lib/jxl/dec_frame.cc 21
/src/libjxl/lib/jxl/quant_weights.cc 25
/src/libjxl/lib/jxl/quant_weights.h 22
/src/libjxl/lib/jxl/frame_header.cc 2
/src/libjxl/lib/jxl/frame_header.h 20
/src/libjxl/lib/jxl/frame_dimensions.h 4
/src/libjxl/lib/jxl/image.h 45
/src/libjxl/lib/jxl/toc.cc 2
/src/libjxl/lib/jxl/coeff_order.cc 5
/src/libjxl/lib/jxl/lehmer_code.h 3
/src/libjxl/lib/jxl/dec_frame.h 17
/src/libjxl/lib/jxl/loop_filter.h 1
/src/libjxl/lib/jxl/passes_state.cc 1
/src/libjxl/lib/jxl/dec_patch_dictionary.h 4
/src/libjxl/lib/jxl/ac_strategy.cc 3
/src/libjxl/lib/jxl/ac_strategy.h 13
/src/libjxl/lib/jxl/image.cc 3
/src/libjxl/lib/jxl/simd_util.cc 1
/src/libjxl/lib/jxl/chroma_from_luma.cc 2
/src/libjxl/lib/jxl/chroma_from_luma.h 12
/src/libjxl/lib/jxl/image_ops.h 13
/src/libjxl/lib/jxl/dec_cache.h 7
/src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc 1
/src/libjxl/lib/jxl/dec_modular.h 10
/src/libjxl/lib/jxl/dec_patch_dictionary.cc 6
/src/libjxl/lib/jxl/pack_signed.h 1
/src/libjxl/lib/jxl/splines.cc 18
/src/libjxl/lib/jxl/splines.h 7
/src/libjxl/lib/jxl/dec_noise.cc 3
/src/libjxl/lib/jxl/quantizer.cc 1
/src/libjxl/lib/jxl/quantizer.h 2
/src/libjxl/lib/jxl/entropy_coder.cc 1
/src/libjxl/lib/jxl/ac_context.h 4
/src/libjxl/lib/jxl/dec_modular.cc 16
/src/libjxl/lib/jxl/modular/encoding/dec_ma.cc 3
/src/libjxl/lib/jxl/modular/modular_image.cc 7
/src/libjxl/lib/jxl/modular/modular_image.h 10
/src/libjxl/lib/jxl/modular/options.h 2
/src/libjxl/lib/jxl/enc_ans_params.h 2
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 12
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 13
/src/libjxl/lib/jxl/modular/transform/transform.cc 4
/src/libjxl/lib/jxl/modular/transform/squeeze.cc 4
/src/libjxl/lib/jxl/modular/transform/palette.cc 6
/src/libjxl/lib/jxl/base/scope_guard.h 4
/src/libjxl/lib/jxl/modular/encoding/encoding.h 2
/src/libjxl/lib/jxl/modular/transform/transform.h 2
/src/libjxl/lib/jxl/modular/transform/rct.cc 1
/src/libjxl/lib/jxl/base/data_parallel.h 83
/src/libjxl/lib/jxl/modular/transform/palette.h 2
/src/libjxl/lib/jxl/base/rect.h 23
/src/libjxl/lib/jxl/compressed_dc.cc 2
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.h 7
/src/libjxl/lib/jxl/epf.cc 1
/src/libjxl/lib/jxl/dec_cache.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_chroma_upsampling.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.cc 6
/src/libjxl/lib/jxl/render_pipeline/stage_gaborish.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_epf.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_patches.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_splines.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_noise.cc 2
/src/libjxl/lib/jxl/render_pipeline/stage_write.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_ycbcr.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_xyb.cc 1
/src/libjxl/lib/jxl/blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_from_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_spot.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_to_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_cms.cc 1
/src/libjxl/lib/jxl/dct_util.h 2
/src/libjxl/lib/jxl/dec_group.cc 2
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data.cc 3

Fuzzer: cjxl_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 8690 71.8%
gold [1:9] 86 0.71%
yellow [10:29] 1 0.00%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 3319 27.4%
All colors 12096 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
12177 12623 8 :

['jxl::Status JxlEncoder::AppendBoxWithContents (std::__1::array const&, jxl::PaddedBytes const&)', 'std::__1::unique_ptr ::~unique_ptr[abi:nn180100]()', 'std::__1::unique_ptr ::unique_ptr[abi:nn180100](std::__1::unique_ptr &&)', '(anonymous namespace)::BrotliCompress(int, unsigned char const*, unsigned long, jxl::PaddedBytes*)', 'jxl::PaddedBytes::PaddedBytes(JxlMemoryManagerStruct*)', 'std::__1::unique_ptr ::operator->[abi:nn180100]() const', 'jxl::Status JxlEncoder::AppendBoxWithContents > >(std::__1::array const&, std::__1::vector > const&)', 'jxl::Status jxl::PaddedBytes::append >(std::__1::array const&)']

12229 12693 JxlEncoder::ProcessOneEnqueuedInput() call site: 00000 /src/libjxl/lib/jxl/encode.cc:877
3830 3834 8 :

['std::__1::unique_ptr ::get[abi:nn180100]() const', 'JxlFastLosslessPrepareFrame', '(anonymous namespace)::RunnerTicket::RunnerTicket(jxl::ThreadPool*)', '(anonymous namespace)::QueueFastLosslessFrame(JxlEncoderFrameSettings const*, JxlFastLosslessFrameState*)', 'JxlFastLosslessProcessFrame', 'std::__1::__atomic_base ::operator unsigned int[abi:nn180100]() const', 'jxl::JxlEncoderChunkedFrameAdapter::StreamingInput() const', 'jxl::JxlEncoderChunkedFrameAdapter::GetInputSource()']

3838 3850 (anonymousnamespace)::JxlEncoderAddImageFrameInternal(JxlEncoderFrameSettingsconst*,unsignedlong,unsignedlong,bool,jxl::JxlEncoderChunkedFrameAdapter&&) call site: 00000 /src/libjxl/lib/jxl/encode.cc:2368
2085 2085 3 :

['std::__1::vector >::operator[][abi:nn180100](unsigned long)', 'jxl::ModularGenericCompress(jxl::Image const&, jxl::ModularOptions const&, jxl::BitWriter&, jxl::AuxOut*, jxl::LayerType, unsigned long)', 'std::__1::vector >::operator[][abi:nn180100](unsigned long)']

2094 2098 jxl::ModularFrameEncoder::EncodeStream(jxl::BitWriter*,jxl::AuxOut*,jxl::LayerType,jxl::ModularStreamIdconst&) call site: 00000 /src/libjxl/lib/jxl/enc_modular.cc:1311
1626 1628 5 :

['std::__1::unique_ptr ::get[abi:nn180100]() const', '(anonymous namespace)::RunnerTicket::RunnerTicket(jxl::ThreadPool*)', 'JxlFastLosslessProcessFrame', 'std::__1::unique_ptr ::operator bool[abi:nn180100]() const', 'std::__1::__atomic_base ::operator unsigned int[abi:nn180100]() const']

1786 2294 JxlEncoder::ProcessOneEnqueuedInput() call site: 00000 /src/libjxl/lib/jxl/encode.cc:962
638 664 9 :

['jxl::LearnTree(jxl::Image const*, jxl::ModularOptions const*, unsigned int, unsigned int, std::__1::vector > const&)', 'jxl::Status::code() const', 'jxl::StatusOr > >::value_() &&', 'std::__1::vector >::data[abi:nn180100]()', 'jxl::Status::operator bool() const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'std::__1::vector >::data[abi:nn180100]()', 'jxl::StatusOr > >::status() const', 'jxl::StatusOr > >::~StatusOr()']

638 666 jxl::ModularFrameEncoder::ComputeTree(jxl::ThreadPool*)::$_1::operator()(unsignedint,unsignedlong)const call site: 00000 /src/libjxl/lib/jxl/enc_modular.cc:1175
179 179 1 :

['skcms_ApproximateCurve']

179 179 skcms_MakeUsableAsDestination call site: 00000 /src/libjxl/third_party/skcms/skcms.cc:2905
149 203 11 :

['jxl::StatusOr >::value_() &&', 'std::__1::__wrap_iter *>::operator*[abi:nn180100]() const', 'jxl::StatusOr >::status() const', 'std::__1::vector , std::__1::allocator > >::begin[abi:nn180100]()', 'jxl::Plane ::operator=(jxl::Plane &&)', 'jxl::detail::PlaneBase::~PlaneBase()', 'jxl::StatusOr >::~StatusOr()', 'std::__1::vector , std::__1::allocator > >::end[abi:nn180100]()', 'std::__1::__wrap_iter *>::operator++[abi:nn180100]()', 'bool std::__1::operator!=[abi:nn180100] *>(std::__1::__wrap_iter *> const&, std::__1::__wrap_iter *> const&)', 'jxl::DownsampleImage(jxl::Plane const&, unsigned long)']

266 31188 jxl::(anonymousnamespace)::ComputeEncodingData(jxl::CompressParamsconst&,jxl::FrameInfoconst&,jxl::CodecMetadataconst*,jxl::JxlEncoderChunkedFrameAdapter&,jxl::jpeg::JPEGDataconst*,unsignedlong,unsignedlong,unsignedlong,unsignedlong,JxlCmsInterfaceconst&,jxl::ThreadPool*,jxl::FrameHeader&,jxl::ModularFrameEncoder&,jxl::PassesEncoderState&,std::__1::vector >,std::__1::allocator >>>*,jxl::AuxOut*) call site: 00000 /src/libjxl/lib/jxl/enc_frame.cc:1601
146 1587 9 :

['jxl::Status::code() const', 'jxl::(anonymous namespace)::UnadaptedWhitePoint(skcms_ICCProfile const&, jxl::cms::CIExy*)', 'jxl::(anonymous namespace)::IdentifyPrimaries(skcms_ICCProfile const&, jxl::cms::CIExy const&, jxl::cms::ColorEncoding*)', 'jxl::(anonymous namespace)::DetectTransferFunction(skcms_ICCProfile const&, jxl::cms::ColorEncoding*)', 'jxl::Status::operator bool() const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'jxl::(anonymous namespace)::ColorSpaceFromProfile(skcms_ICCProfile const&)', 'jxl::cms::ColorEncoding::SetWhitePoint(jxl::cms::CIExy const&)', 'jxl::cms::CIExy::CIExy()']

148 1644 jxl::(anonymousnamespace)::JxlCmsSetFieldsFromICC(void*,unsignedcharconst*,unsignedlong,JxlColorEncoding*,int*) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms.cc:1005
131 133 2 :

['jxl::GetNoiseParameter(jxl::Image3 const&, jxl::NoiseParams*, float)', 'jxl::Status::operator bool() const']

131 133 jxl::(anonymousnamespace)::ComputeNoiseParams(jxl::CompressParamsconst&,bool,bool,jxl::Image3 const&,jxl::FrameDimensionsconst&,jxl::FrameHeader*,jxl::NoiseParams*) call site: 00000 /src/libjxl/lib/jxl/enc_frame.cc:683
127 137 5 :

['jxl::Status::code() const', 'jxl::Status::operator bool() const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'jxl::F16Coder::Read(jxl::BitReader*, float*)', 'jxl::Status::Status(jxl::StatusCode)']

127 139 jxl::DequantMatrices::DecodeDC(jxl::BitReader*) call site: 00000 /src/libjxl/lib/jxl/quant_weights.cc:516
119 1421 13 :

['jxl::Status JxlOutputProcessorBuffer::append >(std::__1::array const&)', 'jxl::StatusOr ::~StatusOr()', 'JxlOutputProcessorBuffer::append(void const*, unsigned long)', 'std::__1::array ::size[abi:nn180100]() const', 'jxl::StatusOr ::value_() &&', 'jxl::StatusOr ::status() const', 'JxlEncoderOutputProcessorWrapper::GetBuffer(unsigned long, unsigned long)', 'jxl::Status JxlOutputProcessorBuffer::append >(std::__1::array const&)', 'std::__1::vector >::empty[abi:nn180100]() const', 'jxl::Status JxlEncoder::AppendBox (std::__1::array const&, bool, unsigned long, JxlEncoder::ProcessOneEnqueuedInput()::$_1 const&)', 'std::__1::array ::size[abi:nn180100]() const', 'JxlOutputProcessorBuffer::~JxlOutputProcessorBuffer()', 'jxl::PaddedBytes::clear()']

14272 28975 JxlEncoder::ProcessOneEnqueuedInput() call site: 00000 /src/libjxl/lib/jxl/encode.cc:823
114 114 1 :

['jxl::(anonymous namespace)::SimplifyInvisible(jxl::Image3 *, jxl::Plane const&, bool)']

398 32303 jxl::(anonymousnamespace)::ComputeEncodingData(jxl::CompressParamsconst&,jxl::FrameInfoconst&,jxl::CodecMetadataconst*,jxl::JxlEncoderChunkedFrameAdapter&,jxl::jpeg::JPEGDataconst*,unsignedlong,unsignedlong,unsignedlong,unsignedlong,JxlCmsInterfaceconst&,jxl::ThreadPool*,jxl::FrameHeader&,jxl::ModularFrameEncoder&,jxl::PassesEncoderState&,std::__1::vector >,std::__1::allocator >>>*,jxl::AuxOut*) call site: 00000 /src/libjxl/lib/jxl/enc_frame.cc:1569

Runtime coverage analysis

Covered functions
1954
Functions that are reachable but not covered
2913
Reachable functions
5510
Percentage of reachable functions covered
47.13%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/cjxl_fuzzer.cc 15
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 8
/src/libjxl/lib/jxl/base/status.h 311
/src/libjxl/third_party/highway/hwy/targets.cc 8
/src/libjxl/third_party/highway/hwy/targets.h 4
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/threads/thread_parallel_runner.cc 4
/src/libjxl/lib/include/jxl/thread_parallel_runner_cxx.h 1
/src/libjxl/lib/threads/thread_parallel_runner_internal.cc 3
/src/libjxl/lib/threads/thread_parallel_runner_internal.h 1
/src/libjxl/lib/include/jxl/encode_cxx.h 1
/src/libjxl/lib/jxl/encode.cc 63
/src/libjxl/lib/jxl/encode_internal.h 52
/src/libjxl/lib/jxl/memory_manager_internal.h 19
/src/libjxl/lib/jxl/image_metadata.h 26
/src/libjxl/lib/jxl/image_metadata.cc 5
/src/libjxl/lib/jxl/field_encodings.h 9
/src/libjxl/lib/jxl/fields.cc 14
/src/libjxl/lib/jxl/fields.h 11
/src/libjxl/lib/jxl/color_encoding_internal.cc 6
/src/libjxl/lib/jxl/cms/color_encoding_cms.h 40
/src/libjxl/lib/jxl/headers.cc 9
/src/libjxl/lib/jxl/enc_params.h 9
/src/libjxl/lib/jxl/modular/options.h 6
/src/libjxl/lib/jxl/enc_ans_params.h 15
/src/libjxl/lib/jxl/splines.h 16
/src/libjxl/lib/jxl/cms/jxl_cms.cc 1
/src/libjxl/lib/jxl/color_encoding_internal.h 37
/src/libjxl/lib/jxl/headers.h 11
/src/libjxl/lib/jxl/base/data_parallel.h 313
/src/libjxl/lib/jxl/luminance.cc 1
/usr/local/bin/../include/c++/v1/stdlib.h 3
/src/libjxl/lib/jxl/cms/jxl_cms_internal.h 37
/src/libjxl/lib/jxl/base/common.h 7
/src/libjxl/lib/jxl/base/matrix_ops.h 3
/src/libjxl/lib/jxl/cms/opsin_params.h 1
/src/libjxl/lib/jxl/cms/transfer_functions.h 5
/src/libjxl/lib/jxl/cms/tone_mapping.h 9
/src/libjxl/lib/jxl/base/span.h 9
/src/libjxl/lib/jxl/test_image.cc 2
/src/libjxl/lib/jxl/base/random.h 6
/src/libjxl/lib/jxl/enc_fast_lossless.cc 368
/src/libjxl/lib/jxl/padded_bytes.h 22
/src/libjxl/lib/jxl/enc_bit_writer.h 8
/src/libjxl/lib/jxl/enc_fields.cc 6
/src/libjxl/lib/jxl/enc_bit_writer.cc 11
/src/libjxl/lib/jxl/enc_aux_out.h 4
/src/libjxl/lib/jxl/enc_icc_codec.cc 6
/src/libjxl/lib/jxl/icc_codec_common.cc 13
/src/libjxl/lib/jxl/enc_ans.h 6
/src/libjxl/lib/jxl/dec_ans.cc 11
/src/libjxl/lib/jxl/dec_ans.h 16
/src/libjxl/lib/jxl/enc_ans.cc 36
/src/libjxl/lib/jxl/enc_lz77.cc 23
/src/libjxl/lib/jxl/base/fast_math-inl.h 3
/src/libjxl/lib/jxl/base/rational_polynomial-inl.h 1
/src/libjxl/lib/jxl/enc_cluster.cc 3
/src/libjxl/lib/jxl/enc_context_map.cc 5
/src/libjxl/lib/jxl/enc_huffman.cc 5
/src/libjxl/lib/jxl/enc_huffman_tree.cc 10
/src/libjxl/lib/jxl/enc_huffman_tree.h 1
/src/libjxl/lib/jxl/ans_common.cc 1
/src/libjxl/lib/jxl/enc_frame.h 3
/src/libjxl/lib/jxl/enc_frame.cc 57
/src/libjxl/lib/jxl/base/override.h 1
/src/libjxl/lib/jxl/enc_progressive_split.h 5
/src/libjxl/lib/jxl/frame_header.cc 6
/src/libjxl/lib/jxl/loop_filter.cc 1
/src/libjxl/lib/jxl/jpeg/enc_jpeg_data.cc 2
/src/libjxl/lib/jxl/frame_header.h 29
/src/libjxl/lib/jxl/enc_modular.cc 30
/src/libjxl/lib/jxl/frame_dimensions.h 4
/src/libjxl/lib/jxl/dec_modular.h 13
/src/libjxl/lib/jxl/enc_cache.h 1
/src/libjxl/lib/jxl/dec_patch_dictionary.h 6
/src/libjxl/lib/jxl/ac_strategy.cc 6
/src/libjxl/lib/jxl/ac_strategy.h 16
/src/libjxl/lib/jxl/image.h 64
/src/libjxl/lib/jxl/image.cc 3
/src/libjxl/lib/jxl/simd_util.cc 1
/src/libjxl/lib/jxl/chroma_from_luma.cc 2
/src/libjxl/lib/jxl/chroma_from_luma.h 18
/src/libjxl/lib/jxl/image_ops.h 28
/src/libjxl/lib/jxl/base/rect.h 29
/src/libjxl/lib/jxl/enc_external_image.cc 4
/src/libjxl/lib/jxl/enc_xyb.cc 1
/src/libjxl/lib/jxl/image_ops.cc 4
/src/libjxl/lib/jxl/enc_photon_noise.cc 3
/src/libjxl/lib/jxl/enc_noise.cc 15
/src/libjxl/lib/jxl/noise.h 3
/src/libjxl/lib/jxl/enc_optimize.h 8
/src/libjxl/lib/jxl/enc_heuristics.cc 23
/src/libjxl/lib/jxl/dec_xyb.cc 6
/src/libjxl/lib/jxl/opsin_params.cc 2
/src/libjxl/lib/jxl/butteraugli/butteraugli.h 4
/src/libjxl/lib/jxl/butteraugli/butteraugli.cc 15
/src/libjxl/lib/jxl/dct_util.h 2
/src/libjxl/lib/jxl/quant_weights.h 30
/src/libjxl/lib/jxl/enc_quant_weights.cc 6
/src/libjxl/lib/jxl/dec_bit_reader.h 7
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/quant_weights.cc 25
/src/libjxl/lib/jxl/enc_modular.h 1
/src/libjxl/lib/jxl/modular/modular_image.h 11
/src/libjxl/lib/jxl/modular/modular_image.cc 7
/src/libjxl/lib/jxl/dec_modular.cc 16
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 12
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 18
/src/libjxl/lib/jxl/modular/transform/transform.cc 5
/src/libjxl/lib/jxl/modular/transform/squeeze.cc 4
/src/libjxl/lib/jxl/modular/transform/palette.cc 6
/src/libjxl/lib/jxl/base/scope_guard.h 4
/src/libjxl/lib/jxl/modular/encoding/dec_ma.cc 3
/src/libjxl/lib/jxl/dec_context_map.cc 2
/src/libjxl/lib/jxl/dec_huffman.cc 3
/src/libjxl/lib/jxl/huffman_table.cc 4
/src/libjxl/lib/jxl/inverse_mtf-inl.h 3
/src/libjxl/third_party/highway/hwy/base.h 1
/src/libjxl/lib/jxl/pack_signed.h 2
/src/libjxl/lib/jxl/modular/encoding/encoding.h 3
/src/libjxl/lib/jxl/modular/transform/transform.h 2
/src/libjxl/lib/jxl/modular/transform/rct.cc 1
/src/libjxl/lib/jxl/modular/transform/palette.h 2
/src/libjxl/lib/jxl/quantizer.cc 6
/src/libjxl/lib/jxl/quantizer.h 3
/src/libjxl/lib/jxl/enc_progressive_split.cc 2
/src/libjxl/lib/jxl/compressed_dc.cc 2
/src/libjxl/lib/jxl/enc_splines.cc 5
/src/libjxl/lib/jxl/splines.cc 21
/src/libjxl/lib/jxl/enc_patch_dictionary.cc 15
/src/libjxl/lib/jxl/enc_debug_image.h 1
/src/libjxl/lib/jxl/enc_debug_image.cc 10
/src/libjxl/lib/jxl/dec_cache.h 8
/src/libjxl/lib/jxl/dec_external_image.cc 24
/src/libjxl/lib/jxl/enc_patch_dictionary.h 2
/src/libjxl/lib/jxl/enc_dot_dictionary.cc 1
/src/libjxl/lib/jxl/enc_detect_dots.h 1
/src/libjxl/lib/jxl/enc_detect_dots.cc 14
/src/libjxl/lib/jxl/enc_convolve_separable5.cc 1
/src/libjxl/lib/jxl/enc_linalg.cc 1
/src/libjxl/lib/jxl/image_bundle.h 24
/src/libjxl/lib/jxl/image_bundle.cc 5
/src/libjxl/lib/jxl/alpha.cc 1
/src/libjxl/lib/jxl/enc_coeff_order.cc 6
/src/libjxl/lib/jxl/enc_entropy_coder.cc 1
/src/libjxl/lib/jxl/enc_gaborish.cc 1
/src/libjxl/lib/jxl/convolve_symmetric5.cc 1
/src/libjxl/lib/jxl/dec_patch_dictionary.cc 6
/src/libjxl/lib/jxl/modular/transform/enc_transform.cc 2
/src/libjxl/lib/jxl/modular/transform/enc_rct.cc 2
/src/libjxl/lib/jxl/modular/transform/enc_squeeze.cc 3
/src/libjxl/lib/jxl/modular/transform/squeeze.h 1
/src/libjxl/lib/jxl/modular/transform/enc_palette.cc 9
/src/libjxl/lib/jxl/modular/encoding/enc_encoding.cc 11
/src/libjxl/lib/jxl/modular/encoding/enc_ma.h 10
/src/libjxl/lib/jxl/modular/encoding/enc_ma.cc 25
/src/libjxl/lib/jxl/modular/encoding/dec_ma.h 3
/src/libjxl/lib/jxl/enc_chroma_from_luma.cc 3
/src/libjxl/lib/jxl/enc_aux_out.cc 1
/src/libjxl/lib/jxl/lehmer_code.h 5
/src/libjxl/lib/jxl/coeff_order.cc 5
/src/libjxl/lib/jxl/ac_context.h 5
/src/libjxl/lib/jxl/enc_group.cc 2
/src/libjxl/lib/jxl/enc_toc.cc 1
/src/libjxl/lib/jxl/toc.cc 3
/src/libjxl/lib/jxl/dec_frame.cc 16
/src/libjxl/lib/jxl/dec_frame.h 9
/src/libjxl/lib/jxl/passes_state.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc 1
/src/libjxl/lib/jxl/loop_filter.h 2
/src/libjxl/lib/jxl/dec_noise.cc 3
/src/libjxl/lib/jxl/entropy_coder.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.h 7
/src/libjxl/lib/jxl/epf.cc 1
/src/libjxl/lib/jxl/dec_cache.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_chroma_upsampling.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.cc 6
/src/libjxl/lib/jxl/render_pipeline/stage_gaborish.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_epf.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_patches.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_splines.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_noise.cc 2
/src/libjxl/lib/jxl/render_pipeline/stage_write.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_ycbcr.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_xyb.cc 1
/src/libjxl/lib/jxl/blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_from_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_spot.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_to_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_cms.cc 1
/src/libjxl/lib/jxl/dec_group.cc 9
/src/libjxl/lib/jxl/enc_adaptive_quantization.cc 10
/src/libjxl/lib/jxl/enc_ac_strategy.h 2
/src/libjxl/lib/jxl/enc_chroma_from_luma.h 4
/src/libjxl/lib/jxl/enc_ac_strategy.cc 4
/src/libjxl/lib/jxl/enc_cache.cc 5
/src/libjxl/lib/jxl/enc_butteraugli_comparator.cc 5
/src/libjxl/lib/jxl/enc_comparator.h 2
/src/libjxl/lib/jxl/enc_image_bundle.cc 7
/src/libjxl/lib/jxl/enc_butteraugli_comparator.h 1
/src/libjxl/third_party/brotli/c/enc/encode.c 36
/src/libjxl/third_party/brotli/c/enc/memory.c 4
/src/libjxl/third_party/brotli/c/enc/encoder_dict.c 4
/src/libjxl/third_party/brotli/c/common/dictionary.c 1
/src/libjxl/third_party/brotli/c/common/transform.c 1
/src/libjxl/third_party/brotli/c/enc/metablock.c 10
/src/libjxl/third_party/brotli/c/enc/compress_fragment.c 12
/src/libjxl/third_party/brotli/c/enc/brotli_bit_stream.c 30
/src/libjxl/third_party/brotli/c/enc/entropy_encode.c 10
/src/libjxl/third_party/brotli/c/enc/compress_fragment_two_pass.c 17
/src/libjxl/third_party/brotli/c/enc/hash_longest_match_quickly_inc.h 12
/src/libjxl/third_party/brotli/c/enc/hash_longest_match_inc.h 3
/src/libjxl/third_party/brotli/c/enc/hash_longest_match64_inc.h 2
/src/libjxl/third_party/brotli/c/enc/hash_forgetful_chain_inc.h 12
/src/libjxl/third_party/brotli/c/enc/hash_composite_inc.h 6
/src/libjxl/third_party/brotli/c/enc/hash_to_binary_tree_inc.h 3
/src/libjxl/third_party/brotli/c/enc/hash_rolling_inc.h 10
/src/libjxl/third_party/brotli/c/enc/utf8_util.c 2
/src/libjxl/third_party/brotli/c/enc/backward_references_hq.c 21
/src/libjxl/third_party/brotli/c/enc/literal_cost.c 4
/src/libjxl/third_party/brotli/c/enc/static_dict.c 2
/src/libjxl/third_party/brotli/c/enc/backward_references.c 1
/src/libjxl/third_party/brotli/c/enc/backward_references_inc.h 19
/src/libjxl/third_party/brotli/c/enc/block_splitter.c 5
/src/libjxl/third_party/brotli/c/enc/metablock_inc.h 9
/src/libjxl/third_party/brotli/c/enc/bit_cost_inc.h 3
/src/libjxl/third_party/brotli/c/enc/block_splitter_inc.h 24
/src/libjxl/third_party/brotli/c/enc/cluster_inc.h 15
/src/libjxl/third_party/brotli/c/enc/histogram.c 3
/src/libjxl/third_party/brotli/c/enc/block_encoder_inc.h 3

Fuzzer: set_from_bytes_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1101 19.0%
gold [1:9] 191 3.30%
yellow [10:29] 75 1.29%
greenyellow [30:49] 51 0.88%
lawngreen 50+ 4353 75.4%
All colors 5771 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
58 58 4 :

['void jxl::N_AVX2::WriteToOutputStage::StoreUnsignedRow (jxl::N_AVX2::WriteToOutputStage::Output const&, float const**, unsigned long, unsigned short*, unsigned long, unsigned long) const', 'unsigned short* jxl::AlignedMemory::address () const', 'void jxl::N_AVX2::WriteToOutputStage::WriteToOutput (jxl::N_AVX2::WriteToOutputStage::Output const&, unsigned long, unsigned long, unsigned long, unsigned long, unsigned short*) const', 'jxl::N_AVX2::WriteToOutputStage::StoreFloat16Row(jxl::N_AVX2::WriteToOutputStage::Output const&, float const**, unsigned long, unsigned short*)']

58 58 jxl::N_AVX2::WriteToOutputStage::OutputBuffers(jxl::N_AVX2::WriteToOutputStage::Outputconst&,unsignedlong,unsignedlong,unsignedlong,unsignedlong,floatconst**)const call site: 00000 /src/libjxl/lib/jxl/render_pipeline/stage_write.cc:334
35 37 3 :

['unsigned char* jxl::AlignedMemory::address () const', 'void jxl::N_AVX2::WriteToOutputStage::StoreUnsignedRow (jxl::N_AVX2::WriteToOutputStage::Output const&, float const**, unsigned long, unsigned char*, unsigned long, unsigned long) const', 'void jxl::N_AVX2::WriteToOutputStage::WriteToOutput (jxl::N_AVX2::WriteToOutputStage::Output const&, unsigned long, unsigned long, unsigned long, unsigned long, unsigned char*) const']

35 37 jxl::N_AVX2::WriteToOutputStage::OutputBuffers(jxl::N_AVX2::WriteToOutputStage::Outputconst&,unsignedlong,unsignedlong,unsignedlong,unsignedlong,floatconst**)const call site: 00000 /src/libjxl/lib/jxl/render_pipeline/stage_write.cc:330
26 64 19 :

['jxl::JpegOrder(jxl::ColorTransform, bool)', 'std::__1::unique_ptr >::get[abi:nn180100]() const', 'std::__1::vector >::data[abi:nn180100]()', 'std::__1::vector >::operator[][abi:nn180100](unsigned long) const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'std::__1::vector >::size[abi:nn180100]() const', 'jxl::DequantMatrices::encodings() const', 'std::__1::vector >::empty[abi:nn180100]() const', 'abs[abi:nn180100](float)', 'jxl::Debug(char const*, ...)', 'jxl::YCbCrChromaSubsampling::operator=(jxl::YCbCrChromaSubsampling const&)', 'std::__1::vector >::operator[][abi:nn180100](unsigned long)', 'std::__1::array ::operator[][abi:nn180100](unsigned long)', 'std::__1::vector >::operator[][abi:nn180100](unsigned long)', 'jxl::Status::Status(jxl::StatusCode)', 'jxl::Abort()', 'std::__1::array ::operator[][abi:nn180100](unsigned long)', 'std::__1::vector >::size[abi:nn180100]() const', 'std::__1::vector >::size[abi:nn180100]() const']

26 66 jxl::FrameDecoder::ProcessACGlobal(jxl::BitReader*) call site: 00000 /src/libjxl/lib/jxl/dec_frame.cc:435
14 51 13 :

['jxl::YCbCrChromaSubsampling::VShift(unsigned long) const', 'std::__1::vector >::resize(unsigned long)', 'jxl::JpegOrder(jxl::ColorTransform, bool)', 'std::__1::unique_ptr >::get[abi:nn180100]() const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'std::__1::vector >::operator[][abi:nn180100](unsigned long)', 'jxl::Status::Status(jxl::StatusCode)', 'std::__1::unique_ptr >::operator->[abi:nn180100]() const', 'jxl::YCbCrChromaSubsampling::RawVShift(unsigned long) const', 'std::__1::array ::operator[][abi:nn180100](unsigned long)', 'jxl::YCbCrChromaSubsampling::HShift(unsigned long) const', 'std::__1::vector >::size[abi:nn180100]() const', 'jxl::YCbCrChromaSubsampling::RawHShift(unsigned long) const']

14 53 jxl::FrameDecoder::InitFrameOutput() call site: 00000 /src/libjxl/lib/jxl/dec_frame.cc:222
10 10 1 :

['expf_(float)']

10 24 skcms_TransferFunction_eval call site: 00000 /src/libjxl/third_party/skcms/skcms.cc:218
9 9 1 :

['Shift']

9 9 BrotliTransformDictionaryWord call site: 00463 /src/libjxl/third_party/brotli/c/common/transform.c:271
6 6 4 :

['std::__1::__atomic_base ::store[abi:nn180100](unsigned int, std::__1::memory_order)', 'jpegxl::ThreadParallelRunner::WorkersReadyBarrier()', 'std::__1::__atomic_base ::fetch_add[abi:nn180100](unsigned int, std::__1::memory_order)', 'jpegxl::ThreadParallelRunner::StartWorkers(unsigned long)']

6 6 jpegxl::ThreadParallelRunner::Runner(void*,void*,int(*)(void*,unsignedlong),void(*)(void*,unsignedint,unsignedlong),unsignedint,unsignedint) call site: 00000 /src/libjxl/lib/threads/thread_parallel_runner_internal.cc:36
3 3 1 :

['jxl::extras::(anonymous namespace)::SetBitDepthFromDataType(JxlDataType, unsigned int*, unsigned int*)']

3 3 voidjxl::extras::(anonymousnamespace)::UpdateBitDepth (JxlBitDepth,JxlDataType,JxlBasicInfo*) call site: 00000 /src/libjxl/lib/extras/dec/jxl.cc:126
3 3 1 :

['jxl::extras::(anonymous namespace)::SetBitDepthFromDataType(JxlDataType, unsigned int*, unsigned int*)']

3 3 voidjxl::extras::(anonymousnamespace)::UpdateBitDepth (JxlBitDepth,JxlDataType,JxlExtraChannelInfo*) call site: 00000 /src/libjxl/lib/extras/dec/jxl.cc:126
2 1360 10 :

['jxl::Status::code() const', 'std::__1::vector >::size[abi:nn180100]() const', 'strncpy', 'jxl::extras::(anonymous namespace)::Parser::SkipWhitespace()', 'jxl::Status::operator bool() const', 'std::__1::vector >::push_back[abi:nn180100](JxlExtraChannelType&&)', 'jxl::extras::(anonymous namespace)::Parser::ParseUnsigned(unsigned long*) [clone .9412]', 'jxl::extras::(anonymous namespace)::Parser::MatchString(char const*, bool)', 'unsigned long const& std::__1::min[abi:nn180100] (unsigned long const&, unsigned long const&)', 'jxl::Status::Status(bool)']

2 1471 jxl::extras::(anonymousnamespace)::Parser::ParseHeaderPAM(jxl::extras::HeaderPNM*,unsignedcharconst**) call site: 00000 /src/libjxl/lib/extras/dec/pnm.cc:249
2 66 8 :

['jxl::Status::code() const', 'jxl::Status jxl::CopyImageTo (jxl::RectT const&, jxl::Plane const&, jxl::RectT const&, jxl::Plane *)', 'jxl::Status::operator bool() const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'jxl::RectT ::RectT(unsigned long, unsigned long, unsigned long, unsigned long)', 'std::__1::vector , std::__1::allocator > >::operator[][abi:nn180100](unsigned long)', 'jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 68 jxl::LowMemoryRenderPipeline::LoadBorders(unsignedlong,unsignedlong,jxl::RectT const&,jxl::Plane *) call site: 00000 /src/libjxl/lib/jxl/render_pipeline/low_memory_render_pipeline.cc:167
2 6 2 :

['jxl::Abort()', 'jxl::Debug(char const*, ...)']

2 6 jxl::GetUpsamplingStage(jxl::CustomTransformDataconst&,unsignedlong,unsignedlong) call site: 00000 /src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc:195

Runtime coverage analysis

Covered functions
2834
Functions that are reachable but not covered
445
Reachable functions
2755
Percentage of reachable functions covered
83.85%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/set_from_bytes_fuzzer.cc 4
/src/libjxl/lib/extras/size_constraints.h 2
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 8
/src/libjxl/lib/jxl/base/status.h 195
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/tools/thread_pool_internal.h 3
/src/libjxl/lib/include/jxl/thread_parallel_runner_cxx.h 1
/src/libjxl/lib/threads/thread_parallel_runner.cc 3
/src/libjxl/lib/threads/thread_parallel_runner_internal.cc 3
/src/libjxl/lib/threads/thread_parallel_runner_internal.h 1
/src/libjxl/lib/jxl/base/span.h 10
/src/libjxl/lib/extras/dec/color_hints.h 3
/src/libjxl/lib/extras/codec.cc 1
/src/libjxl/lib/extras/packed_image.h 22
/src/libjxl/lib/jxl/encode.cc 1
/src/libjxl/lib/extras/dec/decode.cc 10
/src/libjxl/lib/extras/dec/gif.cc 1
/src/libjxl/lib/extras/dec/jpg.cc 1
/src/libjxl/lib/extras/dec/jxl.cc 12
/src/libjxl/lib/jxl/decode.cc 78
/src/libjxl/lib/include/jxl/decode_cxx.h 1
/src/libjxl/lib/jxl/image_metadata.h 27
/src/libjxl/lib/jxl/image_metadata.cc 7
/src/libjxl/lib/jxl/field_encodings.h 9
/src/libjxl/lib/jxl/fields.cc 9
/src/libjxl/lib/jxl/fields.h 10
/src/libjxl/lib/jxl/color_encoding_internal.cc 6
/src/libjxl/lib/jxl/cms/color_encoding_cms.h 39
/src/libjxl/lib/jxl/headers.cc 10
/src/libjxl/lib/jxl/color_encoding_internal.h 27
/src/libjxl/lib/jxl/box_content_decoder.cc 3
/src/libjxl/lib/jxl/decode_to_jpeg.h 9
/src/libjxl/lib/jxl/icc_codec.h 1
/src/libjxl/lib/jxl/padded_bytes.h 20
/src/libjxl/lib/jxl/memory_manager_internal.h 10
/src/libjxl/lib/jxl/headers.h 8
/src/libjxl/lib/extras/dec/color_description.cc 15
/src/libjxl/third_party/brotli/c/dec/decode.c 40
/src/libjxl/third_party/brotli/c/dec/state.c 5
/src/libjxl/third_party/brotli/c/dec/bit_reader.c 2
/src/libjxl/third_party/brotli/c/common/shared_dictionary.c 2
/src/libjxl/third_party/brotli/c/common/dictionary.c 1
/src/libjxl/third_party/brotli/c/common/transform.c 4
/src/libjxl/third_party/brotli/c/dec/huffman.c 3
/src/libjxl/lib/jxl/decode_to_jpeg.cc 7
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data_writer.cc 35
/src/libjxl/lib/jxl/jpeg/dec_jpeg_output_chunk.h 5
/src/libjxl/lib/jxl/jpeg/dec_jpeg_serialization_state.h 1
/src/libjxl/lib/jxl/jpeg/jpeg_data.cc 2
/src/libjxl/lib/jxl/base/common.h 5
/src/libjxl/lib/jxl/dec_bit_reader.h 10
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/icc_codec.cc 9
/src/libjxl/lib/jxl/dec_ans.cc 11
/src/libjxl/lib/jxl/dec_ans.h 16
/src/libjxl/lib/jxl/dec_context_map.cc 2
/src/libjxl/lib/jxl/dec_huffman.cc 3
/src/libjxl/lib/jxl/huffman_table.cc 4
/src/libjxl/lib/jxl/ans_common.cc 1
/src/libjxl/lib/jxl/inverse_mtf-inl.h 3
/src/libjxl/third_party/highway/hwy/base.h 1
/src/libjxl/lib/jxl/icc_codec_common.cc 15
/src/libjxl/lib/jxl/dec_xyb.cc 4
/src/libjxl/lib/jxl/cms/jxl_cms_internal.h 37
/usr/local/bin/../include/c++/v1/stdlib.h 3
/src/libjxl/lib/jxl/base/matrix_ops.h 3
/src/libjxl/lib/jxl/cms/opsin_params.h 1
/src/libjxl/lib/jxl/cms/transfer_functions.h 5
/src/libjxl/lib/jxl/cms/tone_mapping.h 9
/src/libjxl/lib/jxl/opsin_params.cc 1
/src/libjxl/lib/jxl/image_bundle.h 14
/src/libjxl/lib/jxl/dec_frame.cc 21
/src/libjxl/lib/jxl/quant_weights.cc 25
/src/libjxl/lib/jxl/quant_weights.h 22
/src/libjxl/lib/jxl/frame_header.cc 2
/src/libjxl/lib/jxl/frame_header.h 20
/src/libjxl/lib/jxl/frame_dimensions.h 4
/src/libjxl/lib/jxl/image.h 45
/src/libjxl/lib/jxl/toc.cc 2
/src/libjxl/lib/jxl/coeff_order.cc 5
/src/libjxl/lib/jxl/lehmer_code.h 3
/src/libjxl/lib/jxl/dec_frame.h 17
/src/libjxl/lib/jxl/loop_filter.h 1
/src/libjxl/lib/jxl/passes_state.cc 1
/src/libjxl/lib/jxl/dec_patch_dictionary.h 4
/src/libjxl/lib/jxl/ac_strategy.cc 3
/src/libjxl/lib/jxl/ac_strategy.h 13
/src/libjxl/lib/jxl/image.cc 3
/src/libjxl/lib/jxl/simd_util.cc 1
/src/libjxl/third_party/highway/hwy/targets.cc 1
/src/libjxl/third_party/highway/hwy/targets.h 1
/src/libjxl/lib/jxl/chroma_from_luma.cc 2
/src/libjxl/lib/jxl/chroma_from_luma.h 12
/src/libjxl/lib/jxl/image_ops.h 15
/src/libjxl/lib/jxl/dec_cache.h 7
/src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc 1
/src/libjxl/lib/jxl/dec_modular.h 10
/src/libjxl/lib/jxl/dec_patch_dictionary.cc 6
/src/libjxl/lib/jxl/pack_signed.h 1
/src/libjxl/lib/jxl/splines.cc 18
/src/libjxl/lib/jxl/splines.h 7
/src/libjxl/lib/jxl/dec_noise.cc 3
/src/libjxl/lib/jxl/quantizer.cc 1
/src/libjxl/lib/jxl/quantizer.h 2
/src/libjxl/lib/jxl/entropy_coder.cc 1
/src/libjxl/lib/jxl/ac_context.h 4
/src/libjxl/lib/jxl/dec_modular.cc 16
/src/libjxl/lib/jxl/modular/encoding/dec_ma.cc 3
/src/libjxl/lib/jxl/modular/modular_image.cc 7
/src/libjxl/lib/jxl/modular/modular_image.h 10
/src/libjxl/lib/jxl/modular/options.h 2
/src/libjxl/lib/jxl/enc_ans_params.h 2
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 12
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 13
/src/libjxl/lib/jxl/modular/transform/transform.cc 4
/src/libjxl/lib/jxl/modular/transform/squeeze.cc 4
/src/libjxl/lib/jxl/modular/transform/palette.cc 6
/src/libjxl/lib/jxl/base/scope_guard.h 4
/src/libjxl/lib/jxl/modular/encoding/encoding.h 2
/src/libjxl/lib/jxl/modular/transform/transform.h 2
/src/libjxl/lib/jxl/modular/transform/rct.cc 1
/src/libjxl/lib/jxl/base/data_parallel.h 91
/src/libjxl/lib/jxl/modular/transform/palette.h 2
/src/libjxl/lib/jxl/base/rect.h 23
/src/libjxl/lib/jxl/compressed_dc.cc 2
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.h 7
/src/libjxl/lib/jxl/epf.cc 1
/src/libjxl/lib/jxl/dec_cache.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_chroma_upsampling.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.cc 6
/src/libjxl/lib/jxl/render_pipeline/stage_gaborish.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_epf.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_patches.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_splines.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_noise.cc 2
/src/libjxl/lib/jxl/render_pipeline/stage_write.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_ycbcr.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_xyb.cc 1
/src/libjxl/lib/jxl/blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_from_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_spot.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_to_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_cms.cc 1
/src/libjxl/lib/jxl/dct_util.h 2
/src/libjxl/lib/jxl/dec_group.cc 2
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data.cc 3
/src/libjxl/lib/extras/common.cc 1
/src/libjxl/lib/jxl/cms/jxl_cms.cc 1
/src/libjxl/lib/jxl/base/byte_order.h 1
/src/libjxl/lib/extras/dec/jxl.h 1
/src/libjxl/lib/extras/dec/color_hints.cc 2
/src/libjxl/lib/extras/dec/pgx.cc 11
/src/libjxl/lib/extras/dec/apng.cc 1
/src/libjxl/lib/extras/dec/pnm.cc 15
/src/libjxl/lib/extras/dec/pnm.h 1
/src/libjxl/lib/extras/dec/exr.cc 1
/src/libjxl/lib/extras/packed_image_convert.cc 2
/src/libjxl/lib/extras/codec_in_out.h 4
/src/libjxl/lib/jxl/enc_external_image.cc 8
/src/libjxl/lib/jxl/image_bundle.cc 6
/src/libjxl/lib/jxl/luminance.cc 1

Fuzzer: streaming_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 6381 49.2%
gold [1:9] 166 1.28%
yellow [10:29] 60 0.46%
greenyellow [30:49] 82 0.63%
lawngreen 50+ 6260 48.3%
All colors 12949 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
3830 3834 8 :

['std::__1::unique_ptr ::get[abi:nn180100]() const', 'JxlFastLosslessPrepareFrame', '(anonymous namespace)::RunnerTicket::RunnerTicket(jxl::ThreadPool*)', '(anonymous namespace)::QueueFastLosslessFrame(JxlEncoderFrameSettings const*, JxlFastLosslessFrameState*)', 'JxlFastLosslessProcessFrame', 'std::__1::__atomic_base ::operator unsigned int[abi:nn180100]() const', 'jxl::JxlEncoderChunkedFrameAdapter::StreamingInput() const', 'jxl::JxlEncoderChunkedFrameAdapter::GetInputSource()']

3834 3850 (anonymousnamespace)::JxlEncoderAddImageFrameInternal(JxlEncoderFrameSettingsconst*,unsignedlong,unsignedlong,bool,jxl::JxlEncoderChunkedFrameAdapter&&) call site: 00000 /src/libjxl/lib/jxl/encode.cc:2368
2085 2085 3 :

['std::__1::vector >::operator[][abi:nn180100](unsigned long)', 'jxl::ModularGenericCompress(jxl::Image const&, jxl::ModularOptions const&, jxl::BitWriter&, jxl::AuxOut*, jxl::LayerType, unsigned long)', 'std::__1::vector >::operator[][abi:nn180100](unsigned long)']

2085 2098 jxl::ModularFrameEncoder::EncodeStream(jxl::BitWriter*,jxl::AuxOut*,jxl::LayerType,jxl::ModularStreamIdconst&) call site: 00000 /src/libjxl/lib/jxl/enc_modular.cc:1311
1626 1628 5 :

['std::__1::unique_ptr ::get[abi:nn180100]() const', '(anonymous namespace)::RunnerTicket::RunnerTicket(jxl::ThreadPool*)', 'JxlFastLosslessProcessFrame', 'std::__1::unique_ptr ::operator bool[abi:nn180100]() const', 'std::__1::__atomic_base ::operator unsigned int[abi:nn180100]() const']

1713 2294 JxlEncoder::ProcessOneEnqueuedInput() call site: 00000 /src/libjxl/lib/jxl/encode.cc:962
629 664 9 :

['jxl::LearnTree(jxl::Image const*, jxl::ModularOptions const*, unsigned int, unsigned int, std::__1::vector > const&)', 'jxl::Status::code() const', 'jxl::StatusOr > >::value_() &&', 'std::__1::vector >::data[abi:nn180100]()', 'jxl::Status::operator bool() const', 'jxl::StatusMessage(jxl::Status, char const*, ...)', 'std::__1::vector >::data[abi:nn180100]()', 'jxl::StatusOr > >::status() const', 'jxl::StatusOr > >::~StatusOr()']

629 666 jxl::ModularFrameEncoder::ComputeTree(jxl::ThreadPool*)::$_1::operator()(unsignedint,unsignedlong)const call site: 00000 /src/libjxl/lib/jxl/enc_modular.cc:1175
149 203 11 :

['jxl::StatusOr >::value_() &&', 'std::__1::__wrap_iter *>::operator*[abi:nn180100]() const', 'jxl::StatusOr >::status() const', 'std::__1::vector , std::__1::allocator > >::begin[abi:nn180100]()', 'jxl::Plane ::operator=(jxl::Plane &&)', 'jxl::detail::PlaneBase::~PlaneBase()', 'jxl::StatusOr >::~StatusOr()', 'std::__1::vector , std::__1::allocator > >::end[abi:nn180100]()', 'std::__1::__wrap_iter *>::operator++[abi:nn180100]()', 'bool std::__1::operator!=[abi:nn180100] *>(std::__1::__wrap_iter *> const&, std::__1::__wrap_iter *> const&)', 'jxl::DownsampleImage(jxl::Plane const&, unsigned long)']

185 31188 jxl::(anonymousnamespace)::ComputeEncodingData(jxl::CompressParamsconst&,jxl::FrameInfoconst&,jxl::CodecMetadataconst*,jxl::JxlEncoderChunkedFrameAdapter&,jxl::jpeg::JPEGDataconst*,unsignedlong,unsignedlong,unsignedlong,unsignedlong,JxlCmsInterfaceconst&,jxl::ThreadPool*,jxl::FrameHeader&,jxl::ModularFrameEncoder&,jxl::PassesEncoderState&,std::__1::vector >,std::__1::allocator >>>*,jxl::AuxOut*) call site: 00000 /src/libjxl/lib/jxl/enc_frame.cc:1601
131 133 2 :

['jxl::GetNoiseParameter(jxl::Image3 const&, jxl::NoiseParams*, float)', 'jxl::Status::operator bool() const']

131 133 jxl::(anonymousnamespace)::ComputeNoiseParams(jxl::CompressParamsconst&,bool,bool,jxl::Image3 const&,jxl::FrameDimensionsconst&,jxl::FrameHeader*,jxl::NoiseParams*) call site: 00000 /src/libjxl/lib/jxl/enc_frame.cc:683
114 114 1 :

['jxl::(anonymous namespace)::SimplifyInvisible(jxl::Image3 *, jxl::Plane const&, bool)']

299 32303 jxl::(anonymousnamespace)::ComputeEncodingData(jxl::CompressParamsconst&,jxl::FrameInfoconst&,jxl::CodecMetadataconst*,jxl::JxlEncoderChunkedFrameAdapter&,jxl::jpeg::JPEGDataconst*,unsignedlong,unsignedlong,unsignedlong,unsignedlong,JxlCmsInterfaceconst&,jxl::ThreadPool*,jxl::FrameHeader&,jxl::ModularFrameEncoder&,jxl::PassesEncoderState&,std::__1::vector >,std::__1::allocator >>>*,jxl::AuxOut*) call site: 00000 /src/libjxl/lib/jxl/enc_frame.cc:1569
65 65 3 :

['jxl::PropertyDecisionNode::Split(int, int, int, int)', 'std::__1::vector >::push_back[abi:nn180100](jxl::PropertyDecisionNode&&)', 'std::__1::vector >::vector[abi:nn180100]()']

65 121 jxl::PredefinedTree(jxl::ModularOptions::TreeKind,unsignedlong,int,int) call site: 00000 /src/libjxl/lib/jxl/modular/encoding/enc_encoding.cc:482
64 64 2 :

['std::__1::array ::data[abi:nn180100]()', 'jxl::(anonymous namespace)::GetPrimariesLuminances(jxl::cms::ColorEncoding const&, float*)']

76 1300 jxl::(anonymousnamespace)::JxlCmsInit(void*,unsignedlong,unsignedlong,JxlColorProfileconst*,JxlColorProfileconst*,float) call site: 00000 /src/libjxl/lib/jxl/cms/jxl_cms.cc:1171
61 61 6 :

['std::__1::__math::round[abi:nn180100](float)', 'float const& std::__1::max[abi:nn180100] (float const&, float const&)', 'float const& std::__1::min[abi:nn180100] (float const&, float const&)', 'jpegli::N_SSE4::LimitError(float)', 'jpegli::N_SSE4::DitherRow(jpeg_decompress_struct*, float*, int, unsigned long, unsigned long)', 'jpegli::LookupColorIndex(jpeg_decompress_struct*, unsigned char const*)']

61 77 jpegli::N_SSE4::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) call site: 00000 /src/libjxl/lib/jpegli/render.cc:205
61 61 6 :

['jpegli::N_SSE2::DitherRow(jpeg_decompress_struct*, float*, int, unsigned long, unsigned long)', 'jpegli::N_SSE2::LimitError(float)', 'std::__1::__math::round[abi:nn180100](float)', 'float const& std::__1::max[abi:nn180100] (float const&, float const&)', 'float const& std::__1::min[abi:nn180100] (float const&, float const&)', 'jpegli::LookupColorIndex(jpeg_decompress_struct*, unsigned char const*)']

61 77 jpegli::N_SSE2::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) call site: 00000 /src/libjxl/lib/jpegli/render.cc:205
61 61 6 :

['jpegli::N_AVX2::DitherRow(jpeg_decompress_struct*, float*, int, unsigned long, unsigned long)', 'jpegli::N_AVX2::LimitError(float)', 'std::__1::__math::round[abi:nn180100](float)', 'float const& std::__1::max[abi:nn180100] (float const&, float const&)', 'float const& std::__1::min[abi:nn180100] (float const&, float const&)', 'jpegli::LookupColorIndex(jpeg_decompress_struct*, unsigned char const*)']

61 74 jpegli::N_AVX2::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) call site: 00000 /src/libjxl/lib/jpegli/render.cc:205

Runtime coverage analysis

Covered functions
6041
Functions that are reachable but not covered
2305
Reachable functions
5866
Percentage of reachable functions covered
60.71%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/libjxl/tools/streaming_fuzzer.cc 14
/src/libjxl/tools/tracking_memory_manager.cc 2
/src/libjxl/lib/jxl/memory_manager_internal.cc 8
/src/libjxl/lib/jxl/base/status.h 329
/src/libjxl/lib/include/jxl/thread_parallel_runner_cxx.h 1
/src/libjxl/lib/threads/thread_parallel_runner.cc 3
/src/libjxl/lib/threads/thread_parallel_runner_internal.cc 3
/src/libjxl/lib/threads/thread_parallel_runner_internal.h 1
/src/libjxl/tools/tracking_memory_manager.h 2
/src/libjxl/lib/include/jxl/encode_cxx.h 1
/src/libjxl/lib/jxl/encode.cc 66
/src/libjxl/lib/jxl/encode_internal.h 52
/src/libjxl/lib/jxl/memory_manager_internal.h 19
/src/libjxl/lib/jxl/image_metadata.h 31
/src/libjxl/lib/jxl/image_metadata.cc 5
/src/libjxl/lib/jxl/field_encodings.h 9
/src/libjxl/lib/jxl/fields.cc 16
/src/libjxl/lib/jxl/fields.h 11
/src/libjxl/lib/jxl/color_encoding_internal.cc 6
/src/libjxl/lib/jxl/cms/color_encoding_cms.h 40
/src/libjxl/lib/jxl/headers.cc 9
/src/libjxl/lib/jxl/enc_params.h 9
/src/libjxl/lib/jxl/modular/options.h 6
/src/libjxl/lib/jxl/enc_ans_params.h 15
/src/libjxl/lib/jxl/splines.h 16
/src/libjxl/lib/jxl/cms/jxl_cms.cc 1
/src/libjxl/lib/jxl/color_encoding_internal.h 38
/src/libjxl/lib/jxl/headers.h 11
/src/libjxl/lib/jxl/base/data_parallel.h 313
/src/libjxl/lib/jxl/luminance.cc 1
/usr/local/bin/../include/c++/v1/stdlib.h 4
/src/libjxl/lib/jxl/cms/jxl_cms_internal.h 37
/src/libjxl/lib/jxl/base/common.h 8
/src/libjxl/lib/jxl/base/matrix_ops.h 3
/src/libjxl/lib/jxl/cms/opsin_params.h 1
/src/libjxl/lib/jxl/cms/transfer_functions.h 5
/src/libjxl/lib/jxl/cms/tone_mapping.h 9
/src/libjxl/lib/jxl/base/span.h 12
/src/libjxl/lib/jxl/enc_fast_lossless.cc 368
/src/libjxl/lib/jxl/padded_bytes.h 22
/src/libjxl/lib/jxl/enc_bit_writer.h 8
/src/libjxl/lib/jxl/enc_fields.cc 6
/src/libjxl/lib/jxl/enc_bit_writer.cc 11
/src/libjxl/lib/jxl/enc_aux_out.h 4
/src/libjxl/lib/jxl/enc_icc_codec.cc 6
/src/libjxl/lib/jxl/icc_codec_common.cc 15
/src/libjxl/lib/jxl/enc_ans.h 6
/src/libjxl/lib/jxl/dec_ans.cc 11
/src/libjxl/lib/jxl/dec_ans.h 18
/src/libjxl/lib/jxl/enc_ans.cc 36
/src/libjxl/lib/jxl/enc_lz77.cc 23
/src/libjxl/lib/jxl/base/fast_math-inl.h 3
/src/libjxl/lib/jxl/base/rational_polynomial-inl.h 1
/src/libjxl/lib/jxl/enc_cluster.cc 3
/src/libjxl/third_party/highway/hwy/targets.cc 1
/src/libjxl/third_party/highway/hwy/targets.h 1
/src/libjxl/lib/jxl/enc_context_map.cc 5
/src/libjxl/lib/jxl/enc_huffman.cc 5
/src/libjxl/lib/jxl/enc_huffman_tree.cc 10
/src/libjxl/lib/jxl/enc_huffman_tree.h 1
/src/libjxl/lib/jxl/ans_common.cc 1
/src/libjxl/lib/jxl/enc_frame.h 3
/src/libjxl/lib/jxl/enc_frame.cc 57
/src/libjxl/lib/jxl/base/override.h 1
/src/libjxl/lib/jxl/enc_progressive_split.h 5
/src/libjxl/lib/jxl/frame_header.cc 6
/src/libjxl/lib/jxl/loop_filter.cc 1
/src/libjxl/lib/jxl/jpeg/enc_jpeg_data.cc 2
/src/libjxl/lib/jxl/frame_header.h 30
/src/libjxl/lib/jxl/enc_modular.cc 30
/src/libjxl/lib/jxl/frame_dimensions.h 4
/src/libjxl/lib/jxl/dec_modular.h 13
/src/libjxl/lib/jxl/enc_cache.h 1
/src/libjxl/lib/jxl/dec_patch_dictionary.h 6
/src/libjxl/lib/jxl/ac_strategy.cc 6
/src/libjxl/lib/jxl/ac_strategy.h 16
/src/libjxl/lib/jxl/image.h 64
/src/libjxl/lib/jxl/image.cc 3
/src/libjxl/lib/jxl/simd_util.cc 1
/src/libjxl/lib/jxl/chroma_from_luma.cc 2
/src/libjxl/lib/jxl/chroma_from_luma.h 18
/src/libjxl/lib/jxl/image_ops.h 28
/src/libjxl/lib/jxl/base/rect.h 29
/src/libjxl/lib/jxl/enc_external_image.cc 4
/src/libjxl/lib/jxl/enc_xyb.cc 1
/src/libjxl/lib/jxl/image_ops.cc 4
/src/libjxl/lib/jxl/enc_photon_noise.cc 3
/src/libjxl/lib/jxl/enc_noise.cc 15
/src/libjxl/lib/jxl/noise.h 3
/src/libjxl/lib/jxl/enc_optimize.h 8
/src/libjxl/lib/jxl/enc_heuristics.cc 23
/src/libjxl/lib/jxl/dec_xyb.cc 6
/src/libjxl/lib/jxl/opsin_params.cc 2
/src/libjxl/lib/jxl/butteraugli/butteraugli.h 4
/src/libjxl/lib/jxl/butteraugli/butteraugli.cc 15
/src/libjxl/lib/jxl/dct_util.h 2
/src/libjxl/lib/jxl/quant_weights.h 30
/src/libjxl/lib/jxl/enc_quant_weights.cc 6
/src/libjxl/lib/jxl/dec_bit_reader.h 10
/src/libjxl/lib/jxl/dec_bit_reader.cc 1
/src/libjxl/lib/jxl/quant_weights.cc 25
/src/libjxl/lib/jxl/enc_modular.h 1
/src/libjxl/lib/jxl/modular/modular_image.h 11
/src/libjxl/lib/jxl/modular/modular_image.cc 7
/src/libjxl/lib/jxl/dec_modular.cc 16
/src/libjxl/lib/jxl/modular/encoding/encoding.cc 12
/src/libjxl/lib/jxl/modular/encoding/context_predict.h 18
/src/libjxl/lib/jxl/modular/transform/transform.cc 5
/src/libjxl/lib/jxl/modular/transform/squeeze.cc 4
/src/libjxl/lib/jxl/modular/transform/palette.cc 6
/src/libjxl/lib/jxl/base/scope_guard.h 4
/src/libjxl/lib/jxl/modular/encoding/dec_ma.cc 3
/src/libjxl/lib/jxl/dec_context_map.cc 2
/src/libjxl/lib/jxl/dec_huffman.cc 3
/src/libjxl/lib/jxl/huffman_table.cc 4
/src/libjxl/lib/jxl/inverse_mtf-inl.h 3
/src/libjxl/third_party/highway/hwy/base.h 1
/src/libjxl/lib/jxl/pack_signed.h 2
/src/libjxl/lib/jxl/modular/encoding/encoding.h 3
/src/libjxl/lib/jxl/modular/transform/transform.h 2
/src/libjxl/lib/jxl/modular/transform/rct.cc 1
/src/libjxl/lib/jxl/modular/transform/palette.h 2
/src/libjxl/lib/jxl/quantizer.cc 6
/src/libjxl/lib/jxl/quantizer.h 3
/src/libjxl/lib/jxl/enc_progressive_split.cc 2
/src/libjxl/lib/jxl/compressed_dc.cc 2
/src/libjxl/lib/jxl/enc_splines.cc 5
/src/libjxl/lib/jxl/splines.cc 21
/src/libjxl/lib/jxl/enc_patch_dictionary.cc 15
/src/libjxl/lib/jxl/enc_debug_image.h 1
/src/libjxl/lib/jxl/enc_debug_image.cc 10
/src/libjxl/lib/jxl/dec_cache.h 10
/src/libjxl/lib/jxl/dec_external_image.cc 24
/src/libjxl/lib/jxl/base/random.h 5
/src/libjxl/lib/jxl/enc_patch_dictionary.h 2
/src/libjxl/lib/jxl/enc_dot_dictionary.cc 1
/src/libjxl/lib/jxl/enc_detect_dots.h 1
/src/libjxl/lib/jxl/enc_detect_dots.cc 14
/src/libjxl/lib/jxl/enc_convolve_separable5.cc 1
/src/libjxl/lib/jxl/enc_linalg.cc 1
/src/libjxl/lib/jxl/image_bundle.h 24
/src/libjxl/lib/jxl/image_bundle.cc 5
/src/libjxl/lib/jxl/alpha.cc 1
/src/libjxl/lib/jxl/enc_coeff_order.cc 6
/src/libjxl/lib/jxl/enc_entropy_coder.cc 1
/src/libjxl/lib/jxl/enc_gaborish.cc 1
/src/libjxl/lib/jxl/convolve_symmetric5.cc 1
/src/libjxl/lib/jxl/dec_patch_dictionary.cc 7
/src/libjxl/lib/jxl/modular/transform/enc_transform.cc 2
/src/libjxl/lib/jxl/modular/transform/enc_rct.cc 2
/src/libjxl/lib/jxl/modular/transform/enc_squeeze.cc 3
/src/libjxl/lib/jxl/modular/transform/squeeze.h 1
/src/libjxl/lib/jxl/modular/transform/enc_palette.cc 9
/src/libjxl/lib/jxl/modular/encoding/enc_encoding.cc 11
/src/libjxl/lib/jxl/modular/encoding/enc_ma.h 10
/src/libjxl/lib/jxl/modular/encoding/enc_ma.cc 25
/src/libjxl/lib/jxl/modular/encoding/dec_ma.h 3
/src/libjxl/lib/jxl/enc_chroma_from_luma.cc 3
/src/libjxl/lib/jxl/enc_aux_out.cc 1
/src/libjxl/lib/jxl/lehmer_code.h 5
/src/libjxl/lib/jxl/coeff_order.cc 5
/src/libjxl/lib/jxl/ac_context.h 5
/src/libjxl/lib/jxl/enc_group.cc 2
/src/libjxl/lib/jxl/enc_toc.cc 1
/src/libjxl/lib/jxl/toc.cc 3
/src/libjxl/lib/jxl/dec_frame.cc 19
/src/libjxl/lib/jxl/dec_frame.h 19
/src/libjxl/lib/jxl/passes_state.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc 1
/src/libjxl/lib/jxl/loop_filter.h 2
/src/libjxl/lib/jxl/dec_noise.cc 3
/src/libjxl/lib/jxl/entropy_coder.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.h 7
/src/libjxl/lib/jxl/epf.cc 1
/src/libjxl/lib/jxl/dec_cache.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_chroma_upsampling.cc 1
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.cc 6
/src/libjxl/lib/jxl/render_pipeline/stage_gaborish.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_epf.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_patches.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_splines.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_noise.cc 2
/src/libjxl/lib/jxl/render_pipeline/stage_write.cc 3
/src/libjxl/lib/jxl/render_pipeline/stage_ycbcr.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_xyb.cc 1
/src/libjxl/lib/jxl/blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_from_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_blending.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_spot.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_to_linear.cc 1
/src/libjxl/lib/jxl/render_pipeline/stage_cms.cc 1
/src/libjxl/lib/jxl/dec_group.cc 9
/src/libjxl/lib/jxl/enc_adaptive_quantization.cc 10
/src/libjxl/lib/jxl/enc_ac_strategy.h 2
/src/libjxl/lib/jxl/enc_chroma_from_luma.h 4
/src/libjxl/lib/jxl/enc_ac_strategy.cc 4
/src/libjxl/lib/jxl/enc_cache.cc 5
/src/libjxl/lib/jxl/enc_butteraugli_comparator.cc 5
/src/libjxl/lib/jxl/enc_comparator.h 2
/src/libjxl/lib/jxl/enc_image_bundle.cc 7
/src/libjxl/lib/jxl/enc_butteraugli_comparator.h 1
/src/libjxl/third_party/brotli/c/enc/encode.c 36
/src/libjxl/third_party/brotli/c/enc/memory.c 4
/src/libjxl/third_party/brotli/c/enc/encoder_dict.c 4
/src/libjxl/third_party/brotli/c/common/dictionary.c 1
/src/libjxl/third_party/brotli/c/common/transform.c 4
/src/libjxl/third_party/brotli/c/enc/metablock.c 10
/src/libjxl/third_party/brotli/c/enc/compress_fragment.c 12
/src/libjxl/third_party/brotli/c/enc/brotli_bit_stream.c 30
/src/libjxl/third_party/brotli/c/enc/entropy_encode.c 10
/src/libjxl/third_party/brotli/c/enc/compress_fragment_two_pass.c 17
/src/libjxl/third_party/brotli/c/enc/hash_longest_match_quickly_inc.h 12
/src/libjxl/third_party/brotli/c/enc/hash_longest_match_inc.h 3
/src/libjxl/third_party/brotli/c/enc/hash_longest_match64_inc.h 2
/src/libjxl/third_party/brotli/c/enc/hash_forgetful_chain_inc.h 12
/src/libjxl/third_party/brotli/c/enc/hash_composite_inc.h 6
/src/libjxl/third_party/brotli/c/enc/hash_to_binary_tree_inc.h 3
/src/libjxl/third_party/brotli/c/enc/hash_rolling_inc.h 10
/src/libjxl/third_party/brotli/c/enc/utf8_util.c 2
/src/libjxl/third_party/brotli/c/enc/backward_references_hq.c 21
/src/libjxl/third_party/brotli/c/enc/literal_cost.c 4
/src/libjxl/third_party/brotli/c/enc/static_dict.c 2
/src/libjxl/third_party/brotli/c/enc/backward_references.c 1
/src/libjxl/third_party/brotli/c/enc/backward_references_inc.h 19
/src/libjxl/third_party/brotli/c/enc/block_splitter.c 5
/src/libjxl/third_party/brotli/c/enc/metablock_inc.h 9
/src/libjxl/third_party/brotli/c/enc/bit_cost_inc.h 3
/src/libjxl/third_party/brotli/c/enc/block_splitter_inc.h 24
/src/libjxl/third_party/brotli/c/enc/cluster_inc.h 15
/src/libjxl/third_party/brotli/c/enc/histogram.c 3
/src/libjxl/third_party/brotli/c/enc/block_encoder_inc.h 3
/src/libjxl/lib/include/jxl/decode_cxx.h 1
/src/libjxl/lib/jxl/decode.cc 40
/src/libjxl/lib/jxl/box_content_decoder.cc 3
/src/libjxl/lib/jxl/decode_to_jpeg.h 7
/src/libjxl/lib/jxl/icc_codec.h 1
/src/libjxl/third_party/brotli/c/dec/decode.c 40
/src/libjxl/third_party/brotli/c/dec/state.c 5
/src/libjxl/third_party/brotli/c/dec/bit_reader.c 2
/src/libjxl/third_party/brotli/c/common/shared_dictionary.c 2
/src/libjxl/third_party/brotli/c/dec/huffman.c 3
/src/libjxl/lib/jxl/decode_to_jpeg.cc 7
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data_writer.cc 35
/src/libjxl/lib/jxl/jpeg/dec_jpeg_output_chunk.h 5
/src/libjxl/lib/jxl/jpeg/dec_jpeg_serialization_state.h 1
/src/libjxl/lib/jxl/jpeg/jpeg_data.cc 2
/src/libjxl/lib/jxl/icc_codec.cc 9
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data.cc 3

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
jxl::N_AVX2::ProcessRectACS(jxl::CompressParamsconst&,jxl::ACSConfigconst&,jxl::RectT const&,jxl::ColorCorrelationMapconst&,float*,unsignedint*,jxl::AcStrategyImage*) /src/libjxl/lib/jxl/enc_ac_strategy.cc 7 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 13 0 846 167 62 691 0 969 908
jxl::N_SSE4::ProcessRectACS(jxl::CompressParamsconst&,jxl::ACSConfigconst&,jxl::RectT const&,jxl::ColorCorrelationMapconst&,float*,unsignedint*,jxl::AcStrategyImage*) /src/libjxl/lib/jxl/enc_ac_strategy.cc 7 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 13 0 846 167 62 631 0 942 871
jxl::N_SSE2::ProcessRectACS(jxl::CompressParamsconst&,jxl::ACSConfigconst&,jxl::RectT const&,jxl::ColorCorrelationMapconst&,float*,unsignedint*,jxl::AcStrategyImage*) /src/libjxl/lib/jxl/enc_ac_strategy.cc 7 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 13 0 846 167 62 633 0 944 869

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
53.0%
4396 / 8311
Cyclomatic complexity statically reachable by fuzzers
66.0%
35843 / 53953

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/libjxl/tools/color_encoding_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::(anonymous namespace)::ParseColorSpace(jxl::(anonymous namespace)::Tokenizer*, JxlColorEncoding*)']

/src/libjxl/tools/rans_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::DecodeContextMap(JxlMemoryManagerStruct*, std::__1::vector >*, unsigned long*, jxl::BitReader*)', 'jxl::AlignedMemory::Create(JxlMemoryManagerStruct*, unsigned long, unsigned long)', 'jxl::DecodeUintConfig(unsigned long, jxl::HybridUintConfig*, jxl::BitReader*)', 'jxl::DecodeHistograms(JxlMemoryManagerStruct*, jxl::BitReader*, unsigned long, jxl::ANSCode*, std::__1::vector >*, bool)', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', '(anonymous namespace)::Run(unsigned char const*, unsigned long, JxlMemoryManagerStruct*, unsigned long)', 'jxl::Bundle::Init(jxl::Fields*)', 'jxl::DecodeUintConfig(unsigned long, jxl::HybridUintConfig*, jxl::BitReader*)', 'jxl::HuffmanDecodingData::ReadFromBitStream(unsigned long, jxl::BitReader*)', 'jxl::ANSSymbolReader::Create(jxl::ANSCode const*, jxl::BitReader*, unsigned long)']

/src/libjxl/tools/jpegli_dec_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jpegli::DecodeCurrentiMCURow(jpeg_decompress_struct*)', 'jpegli::ChooseColorTransform(jpeg_decompress_struct*)', 'jpegli::PrepareForOutput(jpeg_decompress_struct*)', 'jpegli::(anonymous namespace)::ProcessNextMarker(jpeg_decompress_struct*, unsigned char const*, unsigned long, unsigned long*)', 'jpegli::AddStandardHuffmanTables(jpeg_common_struct*, bool)', 'jpegli_calc_output_dimensions', 'jpegli::ConsumeInput(jpeg_decompress_struct*)', '(anonymous namespace)::DecodeJpeg(unsigned char const*, unsigned long, unsigned long, (anonymous namespace)::FuzzSpec const&, std::__1::vector >*, unsigned long*, unsigned long*)::$_0::operator()() const', '(anonymous namespace)::DecodeJpeg(unsigned char const*, unsigned long, unsigned long, (anonymous namespace)::FuzzSpec const&, std::__1::vector >*, unsigned long*, unsigned long*)::$_0::operator()() const', 'jpegli::AllocateOutputBuffers(jpeg_decompress_struct*)']

/src/libjxl/tools/transforms_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::AlignedMemory::Create(JxlMemoryManagerStruct*, unsigned long, unsigned long)', 'jxl::Status jxl::ThreadPool::Run(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1}, jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_0>(unsigned int, unsigned int, jxl::RunOnPool(jxl::ThreadPool*, unsigned int, unsigned int, jxl::ThreadPoolNoInit const&, jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_0 const&, char const*)::{lambda(unsigned long)#1} const&, jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_0 const&, char const*)', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', 'jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)', 'jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_1::operator()(unsigned int, unsigned long) const', 'jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_2::operator()(unsigned int, unsigned long) const', 'jxl::PredictNoTreeNoWP(unsigned long, int const*, long, int, int, jxl::Predictor)', 'jxl::AlignedMemory::Create(JxlMemoryManagerStruct*, unsigned long, unsigned long)', 'jxl::Plane::Create(JxlMemoryManagerStruct*, unsigned long, unsigned long, unsigned long)', 'jxl::InvPalette(jxl::Image&, unsigned int, unsigned int, unsigned int, jxl::Predictor, jxl::weighted::Header const&, jxl::ThreadPool*)::$_2::operator()(unsigned int, unsigned long) const']

/src/libjxl/tools/icc_codec_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::AlignedMemory::Create(JxlMemoryManagerStruct*, unsigned long, unsigned long)', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', 'jxl::AlignedMemory::Create(JxlMemoryManagerStruct*, unsigned long, unsigned long)', 'jxl::PaddedBytes::WithInitialSpace(JxlMemoryManagerStruct*, unsigned long)', 'jxl::(anonymous namespace)::PredictAndShuffle(unsigned long, unsigned long, int, unsigned long, unsigned char const*, unsigned long, unsigned long*, jxl::PaddedBytes*)', 'jpegxl::tools::TrackingMemoryManager::TrackingMemoryManager(unsigned long, unsigned long)', 'jpegxl::tools::TrackingMemoryManager::TrackingMemoryManager(unsigned long, unsigned long)', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', 'jxl::PaddedBytes::WithInitialSpace(JxlMemoryManagerStruct*, unsigned long)']

/src/libjxl/tools/fields_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::CustomTransformData::CustomTransformData()', 'jxl::Bundle::Init(jxl::Fields*)', 'jxl::ColorEncoding::ColorEncoding()', 'jxl::ImageMetadata::ImageMetadata()', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', 'jxl::BitReader::Close()', '(anonymous namespace)::DoTestOneInput(unsigned char const*, unsigned long)', 'jxl::Bundle::Init(jxl::Fields*)', 'jxl::Bundle::Read(jxl::BitReader*, jxl::Fields*)']

/src/libjxl/tools/decode_basic_info_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::StatusOr::~StatusOr()', 'jxl::StatusOr::value_() &&', 'jxl::StatusOr, std::__1::default_delete > > >::~StatusOr()', 'jxl::FrameDecoder::ProcessDCGlobal(jxl::BitReader*)', 'jxl::YCbCrChromaSubsampling::YCbCrChromaSubsampling()', 'jxl::StatusOr::~StatusOr()', 'jxl::StatusOr > >::~StatusOr()', 'jxl::StatusOr::value_() &&', 'HandleBoxes(JxlDecoder*)', 'JxlDecoder::AdvanceInput(unsigned long)']

/src/libjxl/tools/djxl_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::FrameDimensions::BlockGroupRect(unsigned long) const', 'JxlDecoderRewindDecodingState(JxlDecoder*)', 'jxl::DecodeContextMap(JxlMemoryManagerStruct*, std::__1::vector >*, unsigned long*, jxl::BitReader*)', 'jxl::Status jxl::CopyImageTo(jxl::RectT const&, jxl::Plane const&, jxl::RectT const&, jxl::Plane*)', 'jxl::GetToneMappingStage(jxl::OutputEncodingInfo const&)', 'jxl::DecodeGroup(jxl::FrameHeader const&, jxl::BitReader* restrict*, unsigned long, unsigned long, jxl::PassesDecoderState*, jxl::GroupDecCache*, unsigned long, jxl::RenderPipelineInput&, jxl::jpeg::JPEGData*, unsigned long, bool, bool, bool*)', 'jxl::jpeg::JPEGData::CalculateMcuSize(jxl::jpeg::JPEGScanInfo const&, int*, int*) const', 'jxl::(anonymous namespace)::JxlDecoderProcessCodestream(JxlDecoder*)', 'jxl::Mirror(long, long)', 'JxlDecoderRewindDecodingState(JxlDecoder*)']

/src/libjxl/tools/cjxl_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['JxlEncoder::ProcessOneEnqueuedInput()', '(anonymous namespace)::JxlEncoderAddImageFrameInternal(JxlEncoderFrameSettings const*, unsigned long, unsigned long, bool, jxl::JxlEncoderChunkedFrameAdapter&&)', 'jxl::StatusOr > >::~StatusOr()', 'JxlOutputProcessorBuffer::advance(unsigned long)', 'jxl::ApplyColorTransform(jxl::ColorEncoding const&, float, jxl::Image3 const&, jxl::Plane const*, jxl::RectT const&, jxl::ColorEncoding const&, JxlCmsInterface const&, jxl::ThreadPool*, jxl::Image3*)', 'jxl::Channel::memory_manager() const', 'jxl::StatusOr::~StatusOr()', 'jxl::FwdSqueeze(jxl::Image&, std::__1::vector >, jxl::ThreadPool*)', 'jxl::(anonymous namespace)::ComputeVarDCTEncodingData(jxl::FrameHeader const&, jxl::Image3 const*, jxl::Image3*, jxl::RectT const&, JxlCmsInterface const&, jxl::ThreadPool*, jxl::ModularFrameEncoder*, jxl::PassesEncoderState*, jxl::AuxOut*)', 'jxl::FilterTree(std::__1::vector > const&, std::__1::array&, unsigned long*, bool*, bool*, bool*)']

/src/libjxl/tools/set_from_bytes_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jxl::extras::DecodeImageJXL(unsigned char const*, unsigned long, jxl::extras::JXLDecompressParams const&, unsigned long*, jxl::extras::PackedPixelFile*, std::__1::vector >*, jxl::SizeConstraints const*)', 'HandleBoxes(JxlDecoder*)', 'HandleBoxes(JxlDecoder*)', 'jxl::jpeg::DecodeJPEGData(jxl::Span, jxl::jpeg::JPEGData*)::$_0::operator()(std::__1::vector >&) const', 'jxl::FrameDimensions::BlockGroupRect(unsigned long) const', 'jxl::ModularFrameDecoder::FinalizeDecoding(jxl::FrameHeader const&, jxl::PassesDecoderState*, jxl::ThreadPool*, bool)', 'JxlDecoderRewindDecodingState(JxlDecoder*)', 'jxl::ColorEncoding::FromExternal(JxlColorEncoding const&)', 'jxl::DecodeContextMap(JxlMemoryManagerStruct*, std::__1::vector >*, unsigned long*, jxl::BitReader*)', 'jxl::extras::DecodeImageJXL(unsigned char const*, unsigned long, jxl::extras::JXLDecompressParams const&, unsigned long*, jxl::extras::PackedPixelFile*, std::__1::vector >*, jxl::SizeConstraints const*)']

/src/libjxl/tools/streaming_fuzzer.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['JxlEncoder::ProcessOneEnqueuedInput()', '(anonymous namespace)::JxlEncoderAddImageFrameInternal(JxlEncoderFrameSettings const*, unsigned long, unsigned long, bool, jxl::JxlEncoderChunkedFrameAdapter&&)', 'JxlOutputProcessorBuffer::advance(unsigned long)', 'jxl::DoDownsampleImage(jxl::Plane const&, unsigned long, jxl::Plane*)', 'jxl::ApplyColorTransform(jxl::ColorEncoding const&, float, jxl::Image3 const&, jxl::Plane const*, jxl::RectT const&, jxl::ColorEncoding const&, JxlCmsInterface const&, jxl::ThreadPool*, jxl::Image3*)', 'jxl::(anonymous namespace)::ComputeVarDCTEncodingData(jxl::FrameHeader const&, jxl::Image3 const*, jxl::Image3*, jxl::RectT const&, JxlCmsInterface const&, jxl::ThreadPool*, jxl::ModularFrameEncoder*, jxl::PassesEncoderState*, jxl::AuxOut*)', 'JxlEncoderFrameSettingsCreate', 'jxl::StatusOr > >::StatusOr(jxl::StatusCode)', 'jxl::(anonymous namespace)::FindBestQuantizationMaxError(jxl::FrameHeader const&, jxl::Image3 const&, jxl::Plane&, jxl::PassesEncoderState*, JxlCmsInterface const&, jxl::ThreadPool*, jxl::AuxOut*)', 'JxlOutputProcessorBuffer::append(void const*, unsigned long)']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
jpegli::ChooseColorTransform(jpeg_decompress_struct*) 150 27 18.0% ['jpegli_dec_fuzzer']
jpegli_core_output_dimensions(jpeg_decompress_struct*) 32 14 43.75% ['jpegli_dec_fuzzer']
jpegli_read_scanlines 32 16 50.0% ['jpegli_dec_fuzzer']
jpegli::N_SSE4::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) 80 34 42.5% []
jpegli::N_AVX2::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) 80 34 42.5% []
jpegli::N_SSE2::WriteToOutput(jpeg_decompress_struct*,float*restrict*,unsignedlong,unsignedlong,unsignedlong,unsignedchar*) 80 34 42.5% []
jxl::PredictionResultjxl::detail::Predict<0>(std::__1::vector >*,unsignedlong,intconst*,long,unsignedlong,unsignedlong,jxl::Predictor,jxl::MATreeLookupconst*,jxl::Channelconst*,jxl::weighted::State*,long*) 60 25 41.66%
jxl::PredictionResultjxl::detail::Predict<2>(std::__1::vector >*,unsignedlong,intconst*,long,unsignedlong,unsignedlong,jxl::Predictor,jxl::MATreeLookupconst*,jxl::Channelconst*,jxl::weighted::State*,long*) 60 28 46.66%
unsignedlongjxl::ANSSymbolReader::ReadHybridUintClusteredInlined (unsignedlong,jxl::BitReader*) 48 9 18.75%
jxl::DecodeGroup(jxl::FrameHeaderconst&,jxl::BitReader*restrict*,unsignedlong,unsignedlong,jxl::PassesDecoderState*,jxl::GroupDecCache*,unsignedlong,jxl::RenderPipelineInput&,jxl::jpeg::JPEGData*,unsignedlong,bool,bool,bool*) 89 29 32.58% ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
jxl::N_AVX2::DoColorSpaceTransform(void*,unsignedlong,floatconst*,float*,unsignedlong) 47 23 48.93% []
jxl::(anonymousnamespace)::JxlCmsInit(void*,unsignedlong,unsignedlong,JxlColorProfileconst*,JxlColorProfileconst*,float) 133 45 33.83% []
jxl::AcStrategyHeuristics::Finalize(jxl::FrameDimensionsconst&,jxl::AcStrategyImageconst&,jxl::AuxOut*) 40 5 12.5% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::WriteTokens(std::__1::vector >const&,jxl::EntropyEncodingDataconst&,unsignedlong,jxl::BitWriter*) 76 18 23.68% []
jxl::BuildAndEncodeHistograms(JxlMemoryManagerStruct*,jxl::HistogramParamsconst&,unsignedlong,std::__1::vector >,std::__1::allocator >>>&,jxl::EntropyEncodingData*,jxl::BitWriter*,jxl::LayerType,jxl::AuxOut*)::$_0::operator()()const 112 49 43.75% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::InitializePassesEncoder(jxl::FrameHeaderconst&,jxl::Image3 const&,jxl::RectT const&,JxlCmsInterfaceconst&,jxl::ThreadPool*,jxl::PassesEncoderState*,jxl::ModularFrameEncoder*,jxl::AuxOut*) 148 60 40.54% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::ClusterHistograms(jxl::HistogramParamsconst&,std::__1::vector >const&,unsignedlong,std::__1::vector >*,std::__1::vector >*) 90 12 13.33% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::ComputeCoeffOrder(jxl::SpeedTier,jxl::ACImageconst&,jxl::AcStrategyImageconst&,jxl::FrameDimensionsconst&,unsignedint&,unsignedint,unsignedint,unsignedint,unsignedint*) 129 39 30.23% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::EncodeCoeffOrders(unsignedshort,unsignedintconst*,jxl::BitWriter*,jxl::LayerType,jxl::AuxOut*) 36 16 44.44% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::EncodeFrame(JxlMemoryManagerStruct*,jxl::CompressParamsconst&,jxl::FrameInfoconst&,jxl::CodecMetadataconst*,jxl::JxlEncoderChunkedFrameAdapter&,JxlCmsInterfaceconst&,jxl::ThreadPool*,JxlEncoderOutputProcessorWrapper*,jxl::AuxOut*) 115 28 24.34% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::(anonymousnamespace)::CanDoStreamingEncoding(jxl::CompressParamsconst&,jxl::FrameInfoconst&,jxl::CodecMetadataconst&,jxl::JxlEncoderChunkedFrameAdapterconst&) 53 12 22.64% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::(anonymousnamespace)::MakeFrameHeader(unsignedlong,unsignedlong,jxl::CompressParamsconst&,jxl::ProgressiveSplitterconst&,jxl::FrameInfoconst&,jxl::jpeg::JPEGDataconst*,bool,jxl::FrameHeader*) 135 55 40.74% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::(anonymousnamespace)::PermuteGroups(jxl::CompressParamsconst&,jxl::FrameDimensionsconst&,unsignedlong,std::__1::vector >*,std::__1::vector >,std::__1::allocator >>>*) 59 5 8.474% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::N_AVX2::AdjustQuantBlockAC(jxl::Quantizerconst&,unsignedlong,float,jxl::AcStrategyType,unsignedlong,unsignedlong,float*,floatconst*,int*) 210 14 6.666% []
jxl::FindBestBlockEntropyModel(jxl::CompressParamsconst&,jxl::Plane const&,jxl::AcStrategyImageconst&,jxl::BlockCtxMap*) 114 6 5.263% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::WriteHuffmanTreeRepetitions(unsignedchar,unsignedchar,unsignedlong,unsignedlong*,unsignedchar*,unsignedchar*) 37 17 45.94% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::ModularFrameEncoder::Init(jxl::FrameHeaderconst&,jxl::CompressParamsconst&,bool) 174 92 52.87% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::ModularFrameEncoder::ComputeTree(jxl::ThreadPool*) 127 62 48.81% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::ModularFrameEncoder::AddVarDCTDC(jxl::FrameHeaderconst&,jxl::Image3 const&,jxl::RectT const&,unsignedlong,bool,jxl::PassesEncoderState*,bool) 144 61 42.36% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::PatchDictionaryEncoder::SubtractFrom(jxl::PatchDictionaryconst&,jxl::Image3 *) 49 12 24.48% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::FindBestPatchDictionary(jxl::Image3 const&,jxl::PassesEncoderState*,JxlCmsInterfaceconst&,jxl::ThreadPool*,jxl::AuxOut*,bool) 149 12 8.053% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::(anonymousnamespace)::FindTextLikePatches(jxl::CompressParamsconst&,jxl::Image3 const&,jxl::PassesEncoderStateconst*,jxl::ThreadPool*,jxl::AuxOut*,bool) 339 91 26.84% ['cjxl_fuzzer', 'streaming_fuzzer']
voidjxl::ProgressiveSplitter::SplitACCoefficients (intconst*,jxl::AcStrategyconst&,unsignedlong,unsignedlong,int*restrict*) 42 11 26.19% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::N_AVX2::(anonymousnamespace)::TransformFromPixels(jxl::AcStrategyType,floatconst*,unsignedlong,float*,float*) 208 14 6.730% []
jxl::N_AVX2::(anonymousnamespace)::DCFromLowestFrequencies(jxl::AcStrategyType,floatconst*,float*,unsignedlong,float*) 125 17 13.60% []
JxlEncoderOutputProcessorWrapper::ReleaseBuffer(unsignedlong) 51 14 27.45% ['cjxl_fuzzer', 'streaming_fuzzer']
JxlEncoder::ProcessOneEnqueuedInput() 271 119 43.91% ['cjxl_fuzzer', 'streaming_fuzzer']
JxlEncoderSetColorEncoding 31 15 48.38% ['cjxl_fuzzer', 'streaming_fuzzer']
JxlEncoderSetBasicInfo 101 41 40.59% ['cjxl_fuzzer', 'streaming_fuzzer']
(anonymousnamespace)::VerifyLevelSettings(JxlEncoderconst*,std::__1::basic_string ,std::__1::allocator >*) 46 18 39.13% ['cjxl_fuzzer', 'streaming_fuzzer']
(anonymousnamespace)::JxlEncoderAddImageFrameInternal(JxlEncoderFrameSettingsconst*,unsignedlong,unsignedlong,bool,jxl::JxlEncoderChunkedFrameAdapter&&) 110 43 39.09% ['cjxl_fuzzer', 'streaming_fuzzer']
CanDoFastLossless(JxlEncoderFrameSettingsconst*,JxlPixelFormatconst*,bool) 55 4 7.272% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::weighted::PredictorMode(int,jxl::weighted::Header*) 70 17 24.28% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::PredefinedTree(jxl::ModularOptions::TreeKind,unsignedlong,int,int) 68 17 25.0% ['cjxl_fuzzer', 'streaming_fuzzer']
jxl::(anonymousnamespace)::EncodeModularChannelMAANS(jxl::Imageconst&,int,jxl::weighted::Headerconst&,std::__1::vector >const&,jxl::Token**,unsignedlong,bool) 194 90 46.39% ['cjxl_fuzzer', 'streaming_fuzzer']
booljxl::TreeToLookupTable (std::__1::vector >const&,jxl::TreeLut &) 60 29 48.33% ['cjxl_fuzzer', 'streaming_fuzzer']
skcms_Transform 243 122 50.20% []
read_tag_mba(skcms_ICCTagconst*,skcms_B2A*,bool) 100 28 28.00% []

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/libjxl/lib/jxl/cms/tone_mapping-inl.h [] []
/src/libjxl/lib/jxl/dec_xyb.h [] []
/src/libjxl/lib/jxl/test_utils.cc [] []
/src/libjxl/lib/jxl/enc_dot_dictionary.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_heuristics.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/histogram.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_frame.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_debug_image.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/modular_image.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/usr/local/bin/../include/c++/v1/string [] []
/src/libjxl/third_party/skcms/src/Transform_inl.h [] []
/src/libjxl/lib/jpegli/simd.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/image_metadata.cc ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/simd_util.cc ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/render.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/third_party/brotli/c/enc/backward_references.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/modular/modular_image.cc ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/scope_guard.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_frame.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/quant_weights.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/low_memory_render_pipeline.h [] []
/src/libjxl/lib/jxl/modular/encoding/dec_ma.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_patch_dictionary.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/simple_render_pipeline.h [] []
/src/libjxl/lib/jxl/xorshift128plus-inl.h [] []
/src/libjxl/third_party/brotli/c/dec/huffman.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/highway/hwy/highway.h [] []
/src/libjxl/lib/extras/enc/npy.cc [] []
/src/libjxl/lib/jxl/enc_bit_writer.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/memory_manager_internal.cc ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_bit_writer.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_noise.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_butteraugli_comparator.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/highway/hwy/aligned_allocator.cc [] []
/src/libjxl/third_party/brotli/c/enc/utf8_util.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/extras/dec/color_hints.h ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/extras/dec/pnm.h ['set_from_bytes_fuzzer'] []
/src/libjxl/lib/jxl/modular/transform/transform.cc ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_optimize.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/decode_scan.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/low_memory_render_pipeline.cc [] []
/src/libjxl/lib/threads/thread_parallel_runner.cc ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/codec.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/extras/dec/decode.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/enc_progressive_split.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/frame_header.cc ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_composite_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/cms/jxl_cms_internal.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/jxl.h ['set_from_bytes_fuzzer'] []
/src/libjxl/lib/jxl/enc_noise.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_butteraugli_comparator.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_convolve_separable5.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/inverse_mtf-inl.h ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/image_ops.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/encoder_dict.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_progressive_split.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/exr.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_longest_match64_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/ac_strategy.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/huffman_table.cc ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_chroma_from_luma.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/encoding/enc_ma.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/blending.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_chroma_from_luma.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_cache.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/memory.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/extras/size_constraints.h ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/image_ops.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/decode_to_jpeg.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/jpeg/dec_jpeg_serialization_state.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_huffman.cc ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/packed_image.h ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/third_party/skcms/src/skcms_internals.h [] []
/src/libjxl/lib/jxl/dec_frame.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/backward_references_hq.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_image_bundle.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/highway/hwy/ops/generic_ops-inl.h [] []
/src/libjxl/lib/jxl/dec_bit_reader.cc ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/image_bundle.cc ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_patch_dictionary.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_modular.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/passes_state.h [] []
/src/libjxl/lib/jxl/dec_patch_dictionary.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/encode.cc ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/passes_state.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/butteraugli/butteraugli.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_detect_dots.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/frame_header.h ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/span.h ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/decode_internal.h ['jpegli_dec_fuzzer'] []
/src/libjxl/lib/jxl/modular/transform/squeeze_params.h [] []
/src/libjxl/lib/jxl/modular/transform/rct.cc ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_aux_out.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/render_pipeline/render_pipeline_stage.cc [] []
/src/libjxl/lib/jxl/enc_cache.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/quantizer.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_fields.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_ans.cc ['rans_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/common.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/third_party/brotli/c/enc/compress_fragment.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/third_party/highway/hwy/targets.h ['jpegli_dec_fuzzer', 'transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['jpegli_dec_fuzzer', 'transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/cms/transfer_functions.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_rolling_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/image.cc ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/pack_signed.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data_writer.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/jpeg/jpeg_data.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/fast_math-inl.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/tracking_memory_manager.h ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/jpeg/enc_jpeg_data.h [] []
/src/libjxl/lib/jxl/decode.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/noise.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/jxl.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/headers.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/entropy_coder.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/encoding/context_predict.h ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/color_transform.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/enc_aux_out.cc ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/quantizer.h ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/simple_render_pipeline.cc [] []
/src/libjxl/lib/extras/enc/encode.h [] []
/src/libjxl/lib/jxl/cms/jxl_cms.cc ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/encode.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/tools/fields_fuzzer.cc ['fields_fuzzer'] ['fields_fuzzer']
/src/libjxl/lib/extras/enc/apng.cc [] []
/src/libjxl/tools/tracking_memory_manager.cc ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/splines.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/highway/hwy/ops/x86_128-inl.h [] []
/src/libjxl/lib/jxl/enc_ans_params.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/packed_image_convert.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/jpeg/dec_jpeg_data.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_group_border.cc [] []
/src/libjxl/lib/jxl/render_pipeline/render_pipeline_stage.h [] []
/src/libjxl/lib/jxl/dec_ans.h ['rans_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_quant_weights.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/upsample.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/fields.h ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/common.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/tools/set_from_bytes_fuzzer.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/modular/encoding/encoding.h ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_lz77.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_cms.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/common/dictionary.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_fast_lossless.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_photon_noise.cc ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/quant_weights.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_from_linear.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_huffman_tree.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_upsampling.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_external_image.cc ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/common/platform.c [] []
/src/libjxl/lib/extras/mmap.cc [] []
/src/libjxl/lib/jxl/cms/color_encoding_cms.h ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/convolve_symmetric5.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/test_utils.h [] []
/src/libjxl/lib/jxl/jpeg/enc_jpeg_data.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/dec/bit_reader.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/chroma_from_luma.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/field_encodings.h ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_transforms-inl.h [] []
/src/libjxl/lib/jxl/render_pipeline/stage_chroma_upsampling.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/c_callback_support.h [] []
/src/libjxl/lib/jxl/image_bundle.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/icc_codec.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/cms/transfer_functions-inl.h [] []
/src/libjxl/lib/jxl/modular/transform/enc_squeeze.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/enc/encode.cc [] []
/src/libjxl/lib/jxl/decode_to_jpeg.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/enc_palette.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_huffman.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/enc/pgx.cc [] []
/src/libjxl/lib/jxl/loop_filter.cc ['fields_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/image.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/test_image.cc ['cjxl_fuzzer'] ['cjxl_fuzzer']
/src/libjxl/lib/extras/dec/jpg.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/enc_icc_codec.cc ['icc_codec_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer'] ['icc_codec_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_frame.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/cjxl_fuzzer.cc ['cjxl_fuzzer'] ['cjxl_fuzzer']
/src/libjxl/lib/jxl/compressed_dc.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/encoding/enc_ma.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_ans.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dct_scales.h [] []
/src/libjxl/lib/jxl/icc_codec_common.cc ['icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_to_linear.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/enc_rct.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/block_splitter.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/jpeg/enc_jpeg_huffman_decode.cc [] []
/src/libjxl/lib/jxl/coeff_order.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/icc_codec_fuzzer.cc ['icc_codec_fuzzer'] ['icc_codec_fuzzer']
/src/libjxl/lib/extras/codec_in_out.h ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/tools/djxl_fuzzer.cc ['djxl_fuzzer'] ['djxl_fuzzer']
/src/libjxl/lib/jxl/enc_context_map.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_huffman_tree.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/compress_fragment_two_pass.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jpegli/decode.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/image_metadata.h ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/color_description.cc ['color_encoding_fuzzer', 'set_from_bytes_fuzzer'] ['color_encoding_fuzzer', 'set_from_bytes_fuzzer']
/src/libjxl/lib/jpegli/decode_marker.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/usr/local/bin/../include/c++/v1/__exception/exception.h [] []
/src/libjxl/third_party/brotli/c/enc/compound_dictionary.c [] []
/src/libjxl/lib/jxl/render_pipeline/render_pipeline.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_noise.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/transpose-inl.h [] []
/src/libjxl/lib/extras/enc/jpg.cc [] []
/src/libjxl/lib/jxl/modular/options.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_to_binary_tree_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/extras/enc/jxl.h [] []
/src/libjxl/third_party/brotli/c/common/transform.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/backward_references_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/dec_external_image.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_write.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_xyb.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/jpeg/enc_jpeg_huffman_decode.h [] []
/src/libjxl/lib/jxl/modular/transform/squeeze.cc ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/luminance.cc ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/ac_context.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/highway/hwy/abort.cc [] []
/src/libjxl/lib/jxl/base/random.h ['transforms_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/threads/thread_parallel_runner_internal.cc ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_group_border.h [] []
/src/libjxl/tools/color_encoding_fuzzer.cc ['color_encoding_fuzzer'] ['color_encoding_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_patches.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/include/jxl/thread_parallel_runner_cxx.h ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_entropy_coder.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/jpegli_dec_fuzzer.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/jpeg/jpeg_data.h ['fields_fuzzer'] ['fields_fuzzer']
/src/libjxl/lib/jxl/ans_common.cc ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/libjxl/lib/jxl/enc_adaptive_quantization.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_modular.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_context_map.cc ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_blending.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/common.h ['rans_fuzzer', 'transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_xyb.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_params.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/transforms_fuzzer.cc ['transforms_fuzzer'] ['transforms_fuzzer']
/src/libjxl/lib/jxl/modular/encoding/enc_encoding.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/squeeze.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_tone_mapping.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/simd_util-inl.h [] []
/src/libjxl/lib/jxl/color_encoding_internal.h ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/common_internal.h ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/padded_bytes.h ['icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_group.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/ac_strategy.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/opsin_params.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/color_encoding_internal.cc ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_longest_match_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/box_content_decoder.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_cache.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_coeff_order.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dct_util.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_longest_match_quickly_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/third_party/highway/hwy/targets.cc ['jpegli_dec_fuzzer', 'transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['jpegli_dec_fuzzer', 'transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/cms/opsin_params.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/headers.cc ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/rans_fuzzer.cc ['rans_fuzzer'] ['rans_fuzzer']
/src/libjxl/lib/jxl/test_memory_manager.cc [] []
/src/libjxl/third_party/brotli/c/common/shared_dictionary.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/color_hints.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/enc_linalg.cc ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/third_party/brotli/c/enc/block_encoder_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/third_party/brotli/c/enc/metablock_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/modular/transform/palette.cc ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_ans.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/block_splitter_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/dec_modular.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_ac_strategy.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/metablock.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/convolve_slow.cc [] []
/src/libjxl/lib/jxl/enc_comparator.cc [] []
/src/libjxl/lib/jxl/loop_filter.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/encoding/encoding.cc ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/icc_codec.cc ['icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/enc/jxl.cc [] []
/src/libjxl/lib/include/jxl/decode_cxx.h ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/memory_manager.h ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_splines.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/error.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/extras/metrics.cc [] []
/src/libjxl/third_party/skcms/src/skcms_public.h [] []
/src/libjxl/lib/jxl/jpeg/dec_jpeg_output_chunk.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/idct.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/lib/jxl/enc_gaborish.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/literal_cost.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_ac_strategy.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/dec/state.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_bit_reader.h ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/apng.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/dct-inl.h [] []
/usr/local/bin/../include/c++/v1/stdlib.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_toc.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/bit_cost_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_comparator.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/extras/dec/gif.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/enc_debug_image.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/splines.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/enc/pnm.cc [] []
/src/libjxl/lib/jpegli/color_quantize.cc ['jpegli_dec_fuzzer'] []
/src/libjxl/lib/jxl/jpeg/enc_jpeg_data_reader.cc [] []
/src/libjxl/lib/jxl/toc.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/cms/tone_mapping.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_epf.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/thread_pool_internal.h ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/test_image.h [] []
/src/libjxl/lib/jxl/memory_manager_internal.h ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_spot.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/epf.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_huffman.h [] []
/src/libjxl/lib/jxl/render_pipeline/stage_gaborish.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_modular.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_xyb.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_cluster.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/include/jxl/encode_cxx.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/entropy_encode.c ['cjxl_fuzzer', 'streaming_fuzzer'] ['streaming_fuzzer']
/src/libjxl/lib/jxl/dct_block-inl.h [] []
/src/libjxl/third_party/highway/hwy/base.h ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jpegli/huffman.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/third_party/brotli/c/enc/brotli_bit_stream.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jpegli/memory_manager.cc ['jpegli_dec_fuzzer'] ['jpegli_dec_fuzzer']
/src/libjxl/tools/decode_basic_info_fuzzer.cc ['decode_basic_info_fuzzer'] ['decode_basic_info_fuzzer']
/src/libjxl/lib/jxl/base/data_parallel.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/encode_internal.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_group.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_patch_dictionary.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/chroma_from_luma.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/transform.h ['transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/static_dict.c ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/modular/encoding/dec_ma.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/render_pipeline/stage_ycbcr.cc ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/tools/streaming_fuzzer.cc ['streaming_fuzzer'] ['streaming_fuzzer']
/src/libjxl/lib/jxl/frame_dimensions.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/enc/exr.cc [] []
/src/libjxl/third_party/brotli/c/dec/decode.c ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/brotli/c/enc/cluster_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/dec_transforms-inl.h [] []
/src/libjxl/lib/jxl/base/matrix_ops.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/enc_transform.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/dec_cache.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/byte_order.h ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/third_party/brotli/c/enc/hash_forgetful_chain_inc.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/enc_splines.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/fields.cc ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['rans_fuzzer', 'transforms_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/status.h ['color_encoding_fuzzer', 'rans_fuzzer', 'jpegli_dec_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['color_encoding_fuzzer', 'rans_fuzzer', 'jpegli_dec_fuzzer', 'transforms_fuzzer', 'icc_codec_fuzzer', 'fields_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/pgx.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']
/src/libjxl/lib/jxl/butteraugli/butteraugli.h ['cjxl_fuzzer', 'streaming_fuzzer'] []
/src/libjxl/lib/jxl/base/rect.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/third_party/skcms/skcms.cc [] []
/src/libjxl/lib/jxl/alpha.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['streaming_fuzzer']
/src/libjxl/lib/jxl/lehmer_code.h ['decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/threads/thread_parallel_runner_internal.h ['djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['djxl_fuzzer', 'cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/base/override.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/palette.h ['transforms_fuzzer', 'decode_basic_info_fuzzer', 'djxl_fuzzer', 'cjxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer'] ['transforms_fuzzer', 'djxl_fuzzer', 'set_from_bytes_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/enc_detect_dots.cc ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/jxl/modular/transform/squeeze_params.cc [] []
/src/libjxl/lib/jxl/base/rational_polynomial-inl.h ['cjxl_fuzzer', 'streaming_fuzzer'] ['cjxl_fuzzer', 'streaming_fuzzer']
/src/libjxl/lib/extras/dec/pnm.cc ['set_from_bytes_fuzzer'] ['set_from_bytes_fuzzer']

Directories in report

Directory
/src/libjxl/third_party/highway/hwy/
/usr/local/bin/../include/c++/v1/__exception/
/src/libjxl/lib/include/jxl/
/src/libjxl/lib/jxl/modular/encoding/
/src/libjxl/lib/jxl/modular/transform/
/src/libjxl/lib/jxl/
/src/libjxl/lib/threads/
/src/libjxl/lib/jxl/modular/
/src/libjxl/lib/extras/enc/
/src/libjxl/third_party/skcms/src/
/src/libjxl/third_party/brotli/c/enc/
/src/libjxl/third_party/brotli/c/dec/
/src/libjxl/third_party/skcms/
/src/libjxl/lib/jxl/butteraugli/
/usr/local/bin/../include/c++/v1/
/src/libjxl/tools/
/src/libjxl/third_party/brotli/c/common/
/src/libjxl/third_party/highway/hwy/ops/
/src/libjxl/lib/jxl/render_pipeline/
/src/libjxl/lib/jxl/jpeg/
/src/libjxl/lib/jxl/cms/
/src/libjxl/lib/extras/dec/
/src/libjxl/lib/extras/
/src/libjxl/lib/jxl/base/
/src/libjxl/lib/jpegli/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
color_encoding_fuzzer fuzzerLogFile-0-zq5fPVfSSk.data fuzzerLogFile-0-zq5fPVfSSk.data.yaml color_encoding_fuzzer.covreport
rans_fuzzer fuzzerLogFile-0-NTXu3pxupH.data fuzzerLogFile-0-NTXu3pxupH.data.yaml rans_fuzzer.covreport
jpegli_dec_fuzzer fuzzerLogFile-0-AMReDvJ6Kf.data fuzzerLogFile-0-AMReDvJ6Kf.data.yaml jpegli_dec_fuzzer.covreport
transforms_fuzzer fuzzerLogFile-0-IPVqRQCGsv.data fuzzerLogFile-0-IPVqRQCGsv.data.yaml transforms_fuzzer.covreport
icc_codec_fuzzer fuzzerLogFile-0-PX6qqMNsk8.data fuzzerLogFile-0-PX6qqMNsk8.data.yaml icc_codec_fuzzer.covreport
fields_fuzzer fuzzerLogFile-0-fBEuy42L03.data fuzzerLogFile-0-fBEuy42L03.data.yaml fields_fuzzer.covreport
decode_basic_info_fuzzer fuzzerLogFile-0-3m1hU7uu78.data fuzzerLogFile-0-3m1hU7uu78.data.yaml decode_basic_info_fuzzer.covreport
djxl_fuzzer fuzzerLogFile-0-Fcxr7V4q7g.data fuzzerLogFile-0-Fcxr7V4q7g.data.yaml djxl_fuzzer.covreport
cjxl_fuzzer fuzzerLogFile-0-s6xKgQvRCe.data fuzzerLogFile-0-s6xKgQvRCe.data.yaml cjxl_fuzzer.covreport
set_from_bytes_fuzzer fuzzerLogFile-0-aEeL7ljBKM.data fuzzerLogFile-0-aEeL7ljBKM.data.yaml set_from_bytes_fuzzer.covreport
streaming_fuzzer fuzzerLogFile-0-k88aY6DQMw.data fuzzerLogFile-0-k88aY6DQMw.data.yaml color_encoding_fuzzer.covreport , fields_fuzzer.covreport , decode_basic_info_fuzzer.covreport , icc_codec_fuzzer.covreport , djxl_fuzzer.covreport , jpegli_dec_fuzzer.covreport , rans_fuzzer.covreport , cjxl_fuzzer.covreport , transforms_fuzzer.covreport , set_from_bytes_fuzzer.covreport