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

Fuzzer details

Fuzzer: dng_camera_profile_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 73 9.75%
gold [1:9] 30 4.01%
yellow [10:29] 1 0.13%
greenyellow [30:49] 13 1.73%
lawngreen 50+ 631 84.3%
All colors 748 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
98 98 1 :

['dng_stream::Put_int32(int)']

134 454 dng_camera_profile::CalculateFingerprint()const call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:530
18 18 1 :

['ThrowMatrixMath(char const*)']

18 63 operator*(dng_matrixconst&,dng_vectorconst&) call site: 00000 /src/dng_sdk/source/./dng_matrix.cpp:765
2 155 4 :

['dng_stream::Flush()', 'dng_abort_sniffer::SniffForAbort(dng_abort_sniffer*)', 'Min_uint64(unsigned long, unsigned long)', 'DoCopyBytes(void const*, void*, unsigned int)']

2 197 dng_stream::Get(void*,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_stream.cpp:273
2 20 2 :

['ThrowProgramError(char const*)', 'abort']

2 20 ConvertDoubleToInt32(double) call site: 00000 /src/dng_sdk/source/./dng_safe_arithmetic.cpp:280
2 20 2 :

['ThrowProgramError(char const*)', 'abort']

2 20 ConvertDoubleToUint32(double) call site: 00000 /src/dng_sdk/source/./dng_safe_arithmetic.cpp:292
0 293 4 :

['dng_stream::Put_uint32(unsigned int)', 'tiff_tag::Type() const', 'dng_stream::Put_real64(double)', 'dng_stream::Put_uint16(unsigned short)']

0 500 tag_data_ptr::Put(dng_stream&)const call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:319
0 192 1 :

['dng_stream::Put_uint32(unsigned int)']

0 192 dng_stream::Put_real64(double) call site: 00000 /src/dng_sdk/source/./dng_stream.cpp:659
0 96 1 :

['dng_stream::Put_uint32(unsigned int)']

0 96 dng_stream::Put_real32(float) call site: 00000 /src/dng_sdk/source/./dng_stream.cpp:601
0 78 2 :

['dng_ref_counted_block::Buffer()', 'dng_ref_counted_block::Allocate(unsigned int)']

0 122 dng_ref_counted_block::EnsureWriteable() call site: 00000 /src/dng_sdk/source/./dng_ref_counted_block.cpp:167
0 34 1 :

['dng_string::TrimTrailingBlanks()']

0 58 ParseStringTag(dng_stream&,unsignedint,unsignedint,unsignedint,dng_string&,bool) call site: 00000 /src/dng_sdk/source/./dng_parse_utils.cpp:2742
0 18 1 :

['ThrowProgramError(char const*)']

0 186 dng_hue_sat_map::SetDeltaKnownWriteable(unsignedint,unsignedint,unsignedint,dng_hue_sat_map::HSBModifyconst&) call site: 00000 /src/dng_sdk/source/./dng_hue_sat_map.cpp:173
0 18 1 :

['ThrowProgramError(char const*)']

0 18 dng_matrix::dng_matrix(unsignedint,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_matrix.cpp:42

Runtime coverage analysis

Covered functions
249
Functions that are reachable but not covered
55
Reachable functions
522
Percentage of reachable functions covered
89.46%
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/dng_camera_profile_fuzzer.cpp 1
/src/dng_sdk/source/./dng_file_stream.cpp 2
/src/dng_sdk/source/./dng_stream.cpp 22
/src/dng_sdk/source/./dng_memory.cpp 5
/src/dng_sdk/source/./dng_exceptions.h 7
/src/dng_sdk/source/./dng_exceptions.cpp 1
/src/dng_sdk/source/./dng_memory.h 5
/src/dng_sdk/source/./dng_camera_profile.cpp 16
/src/dng_sdk/source/./dng_string.cpp 16
/src/dng_sdk/source/./dng_matrix.cpp 8
/src/dng_sdk/source/./dng_fingerprint.cpp 9
/src/dng_sdk/source/./dng_hue_sat_map.cpp 5
/src/dng_sdk/source/./dng_ref_counted_block.cpp 5
/src/dng_sdk/source/./dng_rational.h 3
/src/dng_sdk/source/./dng_tone_curve.cpp 4
/src/dng_sdk/source/./dng_tone_curve.h 1
/src/dng_sdk/source/./dng_mutex.cpp 9
/src/dng_sdk/source/./dng_ref_counted_block.h 6
/src/dng_sdk/source/./dng_matrix.h 14
/src/dng_sdk/source/./dng_auto_ptr.h 3
/src/dng_sdk/source/./dng_shared.cpp 4
/src/dng_sdk/source/./dng_stream.h 11
/src/dng_sdk/source/./dng_bottlenecks.h 2
/src/dng_sdk/source/./dng_abort_sniffer.cpp 3
/src/dng_sdk/source/./dng_abort_sniffer.h 1
/src/dng_sdk/source/./dng_pthread.cpp 1
/src/dng_sdk/source/./dng_utils.h 12
/src/dng_sdk/source/./dng_safe_arithmetic.cpp 10
/src/dng_sdk/source/./dng_tag_types.cpp 1
/src/dng_sdk/source/./dng_parse_utils.cpp 5
/src/dng_sdk/source/./dng_safe_arithmetic.h 1
/src/dng_sdk/source/./dng_camera_profile.h 16
/src/dng_sdk/source/./dng_string.h 1
/src/dng_sdk/source/./dng_fingerprint.h 14
/src/dng_sdk/source/./dng_xy_coord.cpp 3
/src/dng_sdk/source/./dng_xy_coord.h 2
/src/dng_sdk/source/./dng_hue_sat_map.h 8
/src/dng_sdk/source/./dng_point.h 1
/src/dng_sdk/source/./dng_rational.cpp 2
/src/dng_sdk/source/./dng_image_writer.cpp 2
/src/dng_sdk/source/./dng_image_writer.h 10

Fuzzer: dng_validate_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 255 13.2%
gold [1:9] 79 4.11%
yellow [10:29] 54 2.81%
greenyellow [30:49] 10 0.52%
lawngreen 50+ 1520 79.2%
All colors 1918 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
625 631 6 :

['dng_memory_data::Buffer_uint32()', 'tiff_dng_extended_color_profile::tiff_dng_extended_color_profile(dng_camera_profile const&)', 'std::__1::vector >::operator[][abi:ne180100](unsigned long)', 'tiff_dng_extended_color_profile::Put(dng_stream&, bool)', 'dng_negative::ProfileByIndex(unsigned int) const', 'tiff_dng_extended_color_profile::~tiff_dng_extended_color_profile()']

1079 2878 dng_image_writer::WriteDNG(dng_host&,dng_stream&,dng_negativeconst&,dng_metadataconst&,dng_preview_listconst*,unsignedint,bool) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:6799
367 459 11 :

['operator new(unsigned long)', 'dng_hue_sat_map::dng_hue_sat_map(dng_hue_sat_map const&)', 'dng_camera_profile::HueSatDeltas1() const', 'dng_hue_sat_map::Interpolate(dng_hue_sat_map const&, dng_hue_sat_map const&, double)', 'dng_camera_profile::HueSatDeltas2() const', 'dng_camera_profile::CalibrationTemperature1() const', 'dng_hue_sat_map::IsValid() const', 'operator delete(void*)', 'dng_temperature::dng_temperature(dng_xy_coord const&)', 'dng_camera_profile::CalibrationTemperature2() const', 'dng_temperature::Temperature() const']

367 459 dng_camera_profile::HueSatMapForWhite(dng_xy_coordconst&)const call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:1154
279 911 13 :

['dng_rect::Size() const', 'dng_pixel_buffer::dng_pixel_buffer(dng_pixel_buffer const&)', 'dng_point::dng_point(int, int)', 'dng_rect::NotEmpty() const', 'operator+(dng_point const&, dng_point const&)', 'dng_rect::dng_rect(int, int, int, int)', 'operator-(dng_point const&, dng_point const&)', 'operator+(dng_rect const&, dng_point const&)', 'dng_rect::TL() const', 'dng_pixel_buffer::~dng_pixel_buffer()', 'dng_pixel_buffer::DirtyPixel(int, int, unsigned int)', 'operator&(dng_rect const&, dng_rect const&)', 'dng_pixel_buffer::RepeatPhase(dng_rect const&, dng_rect const&)']

279 993 dng_image::GetRepeat(dng_pixel_buffer&,dng_rectconst&,dng_rectconst&)const call site: 00000 /src/dng_sdk/source/./dng_image.cpp:276
247 249 2 :

['dng_color_spec::NeutralToXY(dng_vector const&)', 'dng_negative::CameraNeutral() const']

539 2113 dng_render_task::Start(unsignedint,dng_pointconst&,dng_memory_allocator*,dng_abort_sniffer*) call site: 00000 /src/dng_sdk/source/./dng_render.cpp:843
229 237 5 :

['dng_matrix::NotEmpty() const', 'dng_camera_profile::SetCalibrationIlluminant2(unsigned int)', 'dng_camera_profile::SetColorMatrix2(dng_matrix const&)', 'dng_camera_profile::SetForwardMatrix2(dng_matrix const&)', 'dng_camera_profile::SetReductionMatrix2(dng_matrix const&)']

910 1657 dng_camera_profile::Parse(dng_stream&,dng_camera_profile_info&) call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:937
227 278 3 :

['SafeUint32Sub(unsigned int, unsigned int)', 'SafeUint32Mult(unsigned int, unsigned int, unsigned int, unsigned int)', 'dng_camera_profile::ReadHueSatMap(dng_stream&, dng_hue_sat_map&, unsigned int, unsigned int, unsigned int, bool)']

227 689 dng_camera_profile::Parse(dng_stream&,dng_camera_profile_info&) call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:1006
210 302 7 :

['dng_camera_profile::Name() const', 'dng_camera_profile_id::Name() const', 'SplitCameraProfileName(dng_string const&, dng_string&, int&)', 'dng_string::Get() const', 'dng_string::StartsWith(char const*, bool) const', 'dng_string::~dng_string()', 'dng_string::dng_string()']

210 308 dng_negative::ProfileByID(dng_camera_profile_idconst&,bool)const call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:1339
127 127 1 :

['dng_camera_profile::ValidForwardMatrix(dng_matrix const&)']

135 631 dng_camera_profile::IsValid(unsignedint)const call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:680
123 159 4 :

['dng_memory_block::Buffer_uint8()', 'dng_stream::dng_stream(void const*, unsigned int, unsigned long)', 'dng_stream::~dng_stream()', 'DecodePackBits(dng_stream&, unsigned char*, int)']

139 366 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2311
117 117 1 :

['dng_jpeg_preview::SpoolAdobeThumbnail(dng_stream&) const']

175 879 SpoolAdobeData(dng_stream&,dng_metadataconst*,dng_jpeg_previewconst*,dng_memory_blockconst*) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:143
117 117 3 :

['dng_lzw_compressor::Compress(unsigned char const*, unsigned char*, unsigned int, unsigned int&)', 'dng_lzw_compressor::dng_lzw_compressor()', 'dng_lzw_compressor::~dng_lzw_compressor()']

117 230 dng_image_writer::WriteData(dng_host&,dng_ifdconst&,dng_stream&,dng_pixel_buffer&,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:3796
115 115 3 :

['dng_negative::SetOriginalRawFileData(AutoPtr &)', 'dng_negative::ValidateOriginalRawFileDigest()', 'dng_negative::SetOriginalRawFileDigest(dng_fingerprint const&)']

115 475 dng_negative::Parse(dng_host&,dng_stream&,dng_info&) call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:3184

Runtime coverage analysis

Covered functions
1376
Functions that are reachable but not covered
141
Reachable functions
1139
Percentage of reachable functions covered
87.62%
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/dng_validate_fuzzer.cpp 2
/src/dng_sdk/source/./dng_string.cpp 10
/src/dng_sdk/source/./dng_safe_arithmetic.h 3
/src/dng_sdk/source/./dng_exceptions.h 10
/src/dng_sdk/source/./dng_exceptions.cpp 1
/src/dng_sdk/source/./dng_memory.cpp 5
/src/dng_sdk/source/./dng_memory.h 10
/src/dng_sdk/source/./dng_safe_arithmetic.cpp 13
/src/dng_sdk/source/./dng_color_space.cpp 16
/src/dng_sdk/source/./dng_matrix.cpp 15
/src/dng_sdk/source/./dng_matrix.h 12
/src/dng_sdk/source/./dng_xy_coord.cpp 3
/src/dng_sdk/source/./dng_xy_coord.h 3
/src/dng_sdk/source/./dng_utils.h 21
/src/dng_sdk/source/./dng_color_space.h 7
/src/dng_sdk/source/./dng_file_stream.cpp 2
/src/dng_sdk/source/./dng_stream.cpp 12
/src/dng_sdk/source/./dng_host.cpp 5
/src/dng_sdk/source/./dng_host.h 10
/src/dng_sdk/source/./dng_string.h 1
/src/dng_sdk/source/./dng_auto_ptr.h 85
/src/dng_sdk/source/./dng_info.cpp 5
/src/dng_sdk/source/./dng_stream.h 3
/src/dng_sdk/source/./dng_bottlenecks.h 5
/src/dng_sdk/source/./dng_abort_sniffer.cpp 3
/src/dng_sdk/source/./dng_abort_sniffer.h 1
/src/dng_sdk/source/./dng_mutex.cpp 9
/src/dng_sdk/source/./dng_pthread.cpp 1
/src/dng_sdk/source/./dng_negative.cpp 34
/src/dng_sdk/source/./dng_rational.h 3
/src/dng_sdk/source/./dng_point.h 4
/src/dng_sdk/source/./dng_fingerprint.cpp 10
/src/dng_sdk/source/./dng_orientation.h 1
/src/dng_sdk/source/./dng_opcode_list.cpp 6
/src/dng_sdk/source/./dng_jpeg_image.h 4
/src/dng_sdk/source/./dng_negative.h 38
/src/dng_sdk/source/./dng_utils.cpp 7
/src/dng_sdk/source/./dng_ifd.h 1
/src/dng_sdk/source/./dng_rect.h 10
/src/dng_sdk/source/./dng_fingerprint.h 15
/src/dng_sdk/source/./dng_jpeg_image.cpp 7
/src/dng_sdk/source/./dng_area_task.cpp 2
/src/dng_sdk/source/./dng_image.h 5
/src/dng_sdk/source/./dng_tag_types.cpp 1
/src/dng_sdk/source/./dng_pixel_buffer.cpp 10
/src/dng_sdk/source/./dng_tile_iterator.cpp 4
/src/dng_sdk/source/./dng_image.cpp 8
/src/dng_sdk/source/./dng_rect.cpp 2
/src/dng_sdk/source/./dng_pixel_buffer.h 4
/src/dng_sdk/source/./dng_image_writer.cpp 7
/src/dng_sdk/source/./dng_opcodes.h 5
/src/dng_sdk/source/./dng_opcode_list.h 4
/src/dng_sdk/source/./dng_rational.cpp 1
/src/dng_sdk/source/./dng_mosaic_info.h 1
/src/dng_sdk/source/./dng_1d_function.h 2
/src/dng_sdk/source/./dng_1d_table.cpp 5
/src/dng_sdk/source/./dng_1d_function.cpp 2
/src/dng_sdk/source/./dng_misc_opcodes.h 1
/src/dng_sdk/source/./dng_misc_opcodes.cpp 1
/src/dng_sdk/source/./dng_opcodes.cpp 2
/src/dng_sdk/source/./dng_ifd.cpp 7
/src/dng_sdk/source/./dng_preview.cpp 7
/src/dng_sdk/source/./dng_date_time.cpp 8
/src/dng_sdk/source/./dng_date_time.h 9
/src/dng_sdk/source/./dng_render.cpp 5
/src/dng_sdk/source/./dng_render.h 8
/src/dng_sdk/source/./dng_camera_profile.h 4
/src/dng_sdk/source/./dng_tone_curve.cpp 2
/src/dng_sdk/source/./dng_spline.cpp 3
/src/dng_sdk/source/./dng_resample.cpp 8
/src/dng_sdk/source/./dng_resample.h 4
/src/dng_sdk/source/./dng_filter_task.cpp 2
/src/dng_sdk/source/./dng_memory_stream.cpp 2

Fuzzer: dng_parser_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 23 8.71%
gold [1:9] 8 3.03%
yellow [10:29] 4 1.51%
greenyellow [30:49] 2 0.75%
lawngreen 50+ 227 85.9%
All colors 264 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
123 159 4 :

['dng_memory_block::Buffer_uint8()', 'dng_stream::dng_stream(void const*, unsigned int, unsigned long)', 'dng_stream::~dng_stream()', 'DecodePackBits(dng_stream&, unsigned char*, int)']

139 366 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2311
115 115 3 :

['dng_negative::SetOriginalRawFileData(AutoPtr &)', 'dng_negative::ValidateOriginalRawFileDigest()', 'dng_negative::SetOriginalRawFileDigest(dng_fingerprint const&)']

124 475 dng_negative::Parse(dng_host&,dng_stream&,dng_info&) call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:3184
105 105 3 :

['dng_lzw_expander::dng_lzw_expander()', 'dng_lzw_expander::~dng_lzw_expander()', 'dng_lzw_expander::Expand(unsigned char const*, unsigned char*, int, int)']

121 316 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2296
85 85 1 :

['dng_pixel_buffer::ShiftRight(unsigned int)']

85 313 dng_read_image::ReadUncompressed(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:1437
60 90 5 :

['dng_read_tiles_task::dng_read_tiles_task(dng_read_image&, dng_host&, dng_ifd const&, dng_stream&, dng_image&, dng_jpeg_image*, dng_fingerprint*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long*, unsigned int*, unsigned int, unsigned int)', 'AutoArray ::Get()', 'dng_rect::dng_rect(int, int, int, int)', 'Min_uint32(unsigned int, unsigned int)', 'dng_read_tiles_task::~dng_read_tiles_task()']

64 317 dng_read_image::Read(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_jpeg_image*,dng_fingerprint*) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:3219
34 34 2 :

['TempLittleEndian::TempLittleEndian(dng_stream&, bool)', 'TempLittleEndian::~TempLittleEndian()']

34 175 dng_info::ParseMakerNote(dng_host&,dng_stream&,unsignedint,unsignedlong,long,unsignedlong,unsignedlong) call site: 00000 /src/dng_sdk/source/./dng_info.cpp:930
27 27 4 :

['dng_jpeg_image::dng_jpeg_image()', 'operator delete(void*)', 'operator new(unsigned long)', 'AutoPtr ::Reset(dng_jpeg_image*)']

43 631 dng_negative::ReadStage1Image(dng_host&,dng_stream&,dng_info&) call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:3612
16 16 1 :

['dng_negative::SetRawJPEGImage(AutoPtr &)']

16 574 dng_negative::ReadStage1Image(dng_host&,dng_stream&,dng_info&) call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:3652
8 10 5 :

['DoCopyArea16(unsigned short const*, unsigned short*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int)', 'DoCopyAreaS16_R32(short const*, float*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int, unsigned int)', 'DoCopyAreaR32_8(float const*, unsigned char*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int, unsigned int)', 'DoCopyAreaR32_16(float const*, unsigned short*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int, unsigned int)', 'DoCopyAreaR32_S16(float const*, short*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int, unsigned int)']

134 140 dng_pixel_buffer::CopyArea(dng_pixel_bufferconst&,dng_rectconst&,unsignedint,unsignedint,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_pixel_buffer.cpp:927
8 8 4 :

['DoCopyArea8_32(unsigned char const*, unsigned int*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int)', 'DoCopyArea8_R32(unsigned char const*, float*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int, unsigned int)', 'DoCopyArea8_16(unsigned char const*, unsigned short*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int)', 'DoCopyArea8_S16(unsigned char const*, short*, unsigned int, unsigned int, unsigned int, int, int, int, int, int, int)']

39 39 dng_pixel_buffer::CopyArea(dng_pixel_bufferconst&,dng_rectconst&,unsignedint,unsignedint,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_pixel_buffer.cpp:833
5 5 2 :

['operator delete(void*)', 'dng_gain_map::~dng_gain_map()']

5 5 AutoPtr ::Reset(dng_gain_map*) call site: 00000 /src/dng_sdk/source/./dng_auto_ptr.h:150
4 4 1 :

['dng_md5_printer::Decode(unsigned int*, unsigned char const*, unsigned int)']

4 260 dng_md5_printer::MD5Transform(unsignedint*,unsignedcharconst*) call site: 00000 /src/dng_sdk/source/./dng_fingerprint.cpp:492

Runtime coverage analysis

Covered functions
778
Functions that are reachable but not covered
29
Reachable functions
232
Percentage of reachable functions covered
87.5%
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/dng_sdk/source/../fuzzer/dng_parser_fuzzer.cpp 1
/src/dng_sdk/source/./dng_host.cpp 4
/src/dng_sdk/source/./dng_memory_stream.cpp 2
/src/dng_sdk/source/./dng_stream.cpp 10
/src/dng_sdk/source/./dng_memory.cpp 5
/src/dng_sdk/source/./dng_exceptions.h 5
/src/dng_sdk/source/./dng_exceptions.cpp 1
/src/dng_sdk/source/./dng_memory.h 2
/src/dng_sdk/source/./dng_bottlenecks.h 1
/src/dng_sdk/source/./dng_abort_sniffer.cpp 3
/src/dng_sdk/source/./dng_abort_sniffer.h 1
/src/dng_sdk/source/./dng_mutex.cpp 7
/src/dng_sdk/source/./dng_pthread.cpp 1
/src/dng_sdk/source/./dng_stream.h 3
/src/dng_sdk/source/./dng_utils.h 4
/src/dng_sdk/source/./dng_negative.cpp 5
/src/dng_sdk/source/./dng_string.cpp 2
/src/dng_sdk/source/./dng_rational.h 3
/src/dng_sdk/source/./dng_point.h 1
/src/dng_sdk/source/./dng_matrix.cpp 2
/src/dng_sdk/source/./dng_xy_coord.h 1
/src/dng_sdk/source/./dng_fingerprint.cpp 1
/src/dng_sdk/source/./dng_auto_ptr.h 32
/src/dng_sdk/source/./dng_orientation.h 1
/src/dng_sdk/source/./dng_opcode_list.cpp 3
/src/dng_sdk/source/./dng_jpeg_image.h 1
/src/dng_sdk/source/./dng_matrix.h 2
/src/dng_sdk/source/./dng_negative.h 1
/src/dng_sdk/source/./dng_info.cpp 5

Fuzzer: dng_stage_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 327 21.2%
gold [1:9] 18 1.17%
yellow [10:29] 1 0.06%
greenyellow [30:49] 4 0.26%
lawngreen 50+ 1188 77.2%
All colors 1538 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
625 631 6 :

['dng_memory_data::Buffer_uint32()', 'tiff_dng_extended_color_profile::tiff_dng_extended_color_profile(dng_camera_profile const&)', 'std::__1::vector >::operator[][abi:ne180100](unsigned long)', 'tiff_dng_extended_color_profile::Put(dng_stream&, bool)', 'dng_negative::ProfileByIndex(unsigned int) const', 'tiff_dng_extended_color_profile::~tiff_dng_extended_color_profile()']

1091 2878 dng_image_writer::WriteDNG(dng_host&,dng_stream&,dng_negativeconst&,dng_metadataconst&,dng_preview_listconst*,unsignedint,bool) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:6799
279 911 13 :

['dng_rect::Size() const', 'dng_pixel_buffer::dng_pixel_buffer(dng_pixel_buffer const&)', 'dng_point::dng_point(int, int)', 'dng_rect::NotEmpty() const', 'operator+(dng_point const&, dng_point const&)', 'dng_rect::dng_rect(int, int, int, int)', 'operator-(dng_point const&, dng_point const&)', 'operator+(dng_rect const&, dng_point const&)', 'dng_rect::TL() const', 'dng_pixel_buffer::~dng_pixel_buffer()', 'dng_pixel_buffer::DirtyPixel(int, int, unsigned int)', 'operator&(dng_rect const&, dng_rect const&)', 'dng_pixel_buffer::RepeatPhase(dng_rect const&, dng_rect const&)']

279 993 dng_image::GetRepeat(dng_pixel_buffer&,dng_rectconst&,dng_rectconst&)const call site: 00000 /src/dng_sdk/source/./dng_image.cpp:276
227 278 3 :

['SafeUint32Sub(unsigned int, unsigned int)', 'SafeUint32Mult(unsigned int, unsigned int, unsigned int, unsigned int)', 'dng_camera_profile::ReadHueSatMap(dng_stream&, dng_hue_sat_map&, unsigned int, unsigned int, unsigned int, bool)']

227 689 dng_camera_profile::Parse(dng_stream&,dng_camera_profile_info&) call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:1006
144 240 2 :

['dng_stream::Put_uint32(unsigned int)', 'FingerprintHueSatMap(dng_md5_printer_stream&, dng_hue_sat_map const&)']

180 799 dng_camera_profile::CalculateFingerprint()const call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:504
123 159 4 :

['dng_memory_block::Buffer_uint8()', 'dng_stream::dng_stream(void const*, unsigned int, unsigned long)', 'dng_stream::~dng_stream()', 'DecodePackBits(dng_stream&, unsigned char*, int)']

139 366 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2311
117 117 1 :

['dng_jpeg_preview::SpoolAdobeThumbnail(dng_stream&) const']

184 879 SpoolAdobeData(dng_stream&,dng_metadataconst*,dng_jpeg_previewconst*,dng_memory_blockconst*) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:143
105 105 3 :

['dng_lzw_expander::dng_lzw_expander()', 'dng_lzw_expander::~dng_lzw_expander()', 'dng_lzw_expander::Expand(unsigned char const*, unsigned char*, int, int)']

121 316 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2296
101 195 4 :

['dng_ifd::dng_ifd(dng_ifd const&)', 'dng_ifd::~dng_ifd()', 'dng_row_interleaved_image::dng_row_interleaved_image(dng_image&, unsigned int)', 'dng_row_interleaved_image::~dng_row_interleaved_image()']

101 195 dng_image_writer::WriteImage(dng_host&,dng_ifdconst&,dng_basic_tag_set&,dng_stream&,dng_imageconst&,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:4578
85 85 1 :

['dng_pixel_buffer::ShiftRight(unsigned int)']

85 313 dng_read_image::ReadUncompressed(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:1437
80 110 4 :

['dng_rect::dng_rect(int, int, int, int)', 'Min_uint32(unsigned int, unsigned int)', 'dng_write_tiles_task::~dng_write_tiles_task()', 'dng_write_tiles_task::dng_write_tiles_task(dng_image_writer&, dng_host&, dng_ifd const&, dng_basic_tag_set&, dng_stream&, dng_image const&, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)']

80 110 dng_image_writer::WriteImage(dng_host&,dng_ifdconst&,dng_basic_tag_set&,dng_stream&,dng_imageconst&,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:4651
58 447 4 :

['dng_stream::Put_uint32(unsigned int)', 'dng_fingerprint::IsValid() const', 'dng_metadata::IPTCDigest(bool) const', 'dng_stream::Put_uint16(unsigned short)']

58 753 SpoolAdobeData(dng_stream&,dng_metadataconst*,dng_jpeg_previewconst*,dng_memory_blockconst*) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:150
57 90 5 :

['dng_read_tiles_task::dng_read_tiles_task(dng_read_image&, dng_host&, dng_ifd const&, dng_stream&, dng_image&, dng_jpeg_image*, dng_fingerprint*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long*, unsigned int*, unsigned int, unsigned int)', 'AutoArray ::Get()', 'dng_rect::dng_rect(int, int, int, int)', 'Min_uint32(unsigned int, unsigned int)', 'dng_read_tiles_task::~dng_read_tiles_task()']

61 317 dng_read_image::Read(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_jpeg_image*,dng_fingerprint*) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:3219

Runtime coverage analysis

Covered functions
1326
Functions that are reachable but not covered
160
Reachable functions
1052
Percentage of reachable functions covered
84.79%
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/dng_stage_fuzzer.cpp 2
/src/dng_sdk/source/./dng_host.cpp 5
/src/dng_sdk/source/./dng_host.h 12
/src/dng_sdk/source/./dng_utils.h 21
/src/dng_sdk/source/./dng_camera_profile.cpp 2
/src/dng_sdk/source/./dng_string.cpp 10
/src/dng_sdk/source/./dng_memory.cpp 5
/src/dng_sdk/source/./dng_matrix.cpp 15
/src/dng_sdk/source/./dng_fingerprint.cpp 11
/src/dng_sdk/source/./dng_hue_sat_map.cpp 3
/src/dng_sdk/source/./dng_ref_counted_block.cpp 3
/src/dng_sdk/source/./dng_rational.h 3
/src/dng_sdk/source/./dng_tone_curve.cpp 6
/src/dng_sdk/source/./dng_tone_curve.h 1
/src/dng_sdk/source/./dng_mutex.cpp 9
/src/dng_sdk/source/./dng_ref_counted_block.h 3
/src/dng_sdk/source/./dng_matrix.h 12
/src/dng_sdk/source/./dng_auto_ptr.h 85
/src/dng_sdk/source/./dng_camera_profile.h 14
/src/dng_sdk/source/./dng_safe_arithmetic.h 3
/src/dng_sdk/source/./dng_exceptions.h 8
/src/dng_sdk/source/./dng_exceptions.cpp 1
/src/dng_sdk/source/./dng_memory.h 10
/src/dng_sdk/source/./dng_safe_arithmetic.cpp 9
/src/dng_sdk/source/./dng_fingerprint.h 13
/src/dng_sdk/source/./dng_info.cpp 5
/src/dng_sdk/source/./dng_file_stream.cpp 2
/src/dng_sdk/source/./dng_stream.cpp 11
/src/dng_sdk/source/./dng_stream.h 3
/src/dng_sdk/source/./dng_bottlenecks.h 2
/src/dng_sdk/source/./dng_abort_sniffer.cpp 3
/src/dng_sdk/source/./dng_abort_sniffer.h 1
/src/dng_sdk/source/./dng_pthread.cpp 1
/src/dng_sdk/source/./dng_negative.cpp 35
/src/dng_sdk/source/./dng_point.h 4
/src/dng_sdk/source/./dng_xy_coord.h 3
/src/dng_sdk/source/./dng_orientation.h 1
/src/dng_sdk/source/./dng_opcode_list.cpp 6
/src/dng_sdk/source/./dng_jpeg_image.h 4
/src/dng_sdk/source/./dng_negative.h 42
/src/dng_sdk/source/./dng_hue_sat_map.h 3
/src/dng_sdk/source/./dng_rational.cpp 2
/src/dng_sdk/source/./dng_ifd.h 1
/src/dng_sdk/source/./dng_rect.h 9
/src/dng_sdk/source/./dng_opcodes.h 5
/src/dng_sdk/source/./dng_opcode_list.h 4
/src/dng_sdk/source/./dng_image.h 4
/src/dng_sdk/source/./dng_image_writer.cpp 4
/src/dng_sdk/source/./dng_rect.cpp 2
/src/dng_sdk/source/./dng_mosaic_info.h 1
/src/dng_sdk/source/./dng_utils.cpp 4
/src/dng_sdk/source/./dng_area_task.cpp 2
/src/dng_sdk/source/./dng_tile_iterator.cpp 3
/src/dng_sdk/source/./dng_image.cpp 6
/src/dng_sdk/source/./dng_pixel_buffer.cpp 4
/src/dng_sdk/source/./dng_pixel_buffer.h 2
/src/dng_sdk/source/./dng_1d_function.h 2
/src/dng_sdk/source/./dng_1d_table.cpp 5
/src/dng_sdk/source/./dng_1d_function.cpp 2
/src/dng_sdk/source/./dng_misc_opcodes.h 1
/src/dng_sdk/source/./dng_misc_opcodes.cpp 1
/src/dng_sdk/source/./dng_opcodes.cpp 2
/src/dng_sdk/source/./dng_jpeg_image.cpp 7
/src/dng_sdk/source/./dng_ifd.cpp 7
/src/dng_sdk/source/./dng_tag_types.cpp 1
/src/dng_sdk/source/./dng_preview.cpp 2
/src/dng_sdk/source/./dng_render.cpp 5
/src/dng_sdk/source/./dng_render.h 5
/src/dng_sdk/source/./dng_color_space.cpp 5
/src/dng_sdk/source/./dng_xy_coord.cpp 3
/src/dng_sdk/source/./dng_color_space.h 2
/src/dng_sdk/source/./dng_spline.cpp 3
/src/dng_sdk/source/./dng_resample.cpp 8
/src/dng_sdk/source/./dng_resample.h 4
/src/dng_sdk/source/./dng_filter_task.cpp 2

Fuzzer: dng_fixed_validate_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 284 15.2%
gold [1:9] 57 3.05%
yellow [10:29] 20 1.07%
greenyellow [30:49] 7 0.37%
lawngreen 50+ 1498 80.2%
All colors 1866 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
625 631 6 :

['dng_memory_data::Buffer_uint32()', 'tiff_dng_extended_color_profile::tiff_dng_extended_color_profile(dng_camera_profile const&)', 'std::__1::vector >::operator[][abi:ne180100](unsigned long)', 'tiff_dng_extended_color_profile::Put(dng_stream&, bool)', 'dng_negative::ProfileByIndex(unsigned int) const', 'tiff_dng_extended_color_profile::~tiff_dng_extended_color_profile()']

1079 2878 dng_image_writer::WriteDNG(dng_host&,dng_stream&,dng_negativeconst&,dng_metadataconst&,dng_preview_listconst*,unsignedint,bool) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:6799
367 459 11 :

['operator new(unsigned long)', 'dng_hue_sat_map::dng_hue_sat_map(dng_hue_sat_map const&)', 'dng_camera_profile::HueSatDeltas1() const', 'dng_hue_sat_map::Interpolate(dng_hue_sat_map const&, dng_hue_sat_map const&, double)', 'dng_camera_profile::HueSatDeltas2() const', 'dng_camera_profile::CalibrationTemperature1() const', 'dng_hue_sat_map::IsValid() const', 'operator delete(void*)', 'dng_temperature::dng_temperature(dng_xy_coord const&)', 'dng_camera_profile::CalibrationTemperature2() const', 'dng_temperature::Temperature() const']

367 459 dng_camera_profile::HueSatMapForWhite(dng_xy_coordconst&)const call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:1154
279 911 13 :

['dng_rect::Size() const', 'dng_pixel_buffer::dng_pixel_buffer(dng_pixel_buffer const&)', 'dng_point::dng_point(int, int)', 'dng_rect::NotEmpty() const', 'operator+(dng_point const&, dng_point const&)', 'dng_rect::dng_rect(int, int, int, int)', 'operator-(dng_point const&, dng_point const&)', 'operator+(dng_rect const&, dng_point const&)', 'dng_rect::TL() const', 'dng_pixel_buffer::~dng_pixel_buffer()', 'dng_pixel_buffer::DirtyPixel(int, int, unsigned int)', 'operator&(dng_rect const&, dng_rect const&)', 'dng_pixel_buffer::RepeatPhase(dng_rect const&, dng_rect const&)']

279 993 dng_image::GetRepeat(dng_pixel_buffer&,dng_rectconst&,dng_rectconst&)const call site: 00000 /src/dng_sdk/source/./dng_image.cpp:276
227 278 3 :

['SafeUint32Sub(unsigned int, unsigned int)', 'SafeUint32Mult(unsigned int, unsigned int, unsigned int, unsigned int)', 'dng_camera_profile::ReadHueSatMap(dng_stream&, dng_hue_sat_map&, unsigned int, unsigned int, unsigned int, bool)']

227 689 dng_camera_profile::Parse(dng_stream&,dng_camera_profile_info&) call site: 00000 /src/dng_sdk/source/./dng_camera_profile.cpp:1006
210 302 7 :

['dng_camera_profile::Name() const', 'dng_camera_profile_id::Name() const', 'SplitCameraProfileName(dng_string const&, dng_string&, int&)', 'dng_string::Get() const', 'dng_string::StartsWith(char const*, bool) const', 'dng_string::~dng_string()', 'dng_string::dng_string()']

210 308 dng_negative::ProfileByID(dng_camera_profile_idconst&,bool)const call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:1339
123 159 4 :

['dng_memory_block::Buffer_uint8()', 'dng_stream::dng_stream(void const*, unsigned int, unsigned long)', 'dng_stream::~dng_stream()', 'DecodePackBits(dng_stream&, unsigned char*, int)']

139 366 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2311
117 117 1 :

['dng_jpeg_preview::SpoolAdobeThumbnail(dng_stream&) const']

117 879 SpoolAdobeData(dng_stream&,dng_metadataconst*,dng_jpeg_previewconst*,dng_memory_blockconst*) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:143
117 117 3 :

['dng_lzw_compressor::Compress(unsigned char const*, unsigned char*, unsigned int, unsigned int&)', 'dng_lzw_compressor::dng_lzw_compressor()', 'dng_lzw_compressor::~dng_lzw_compressor()']

117 230 dng_image_writer::WriteData(dng_host&,dng_ifdconst&,dng_stream&,dng_pixel_buffer&,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:3796
115 115 3 :

['dng_negative::SetOriginalRawFileData(AutoPtr &)', 'dng_negative::ValidateOriginalRawFileDigest()', 'dng_negative::SetOriginalRawFileDigest(dng_fingerprint const&)']

125 475 dng_negative::Parse(dng_host&,dng_stream&,dng_info&) call site: 00000 /src/dng_sdk/source/./dng_negative.cpp:3184
109 113 2 :

['LocalTimeZone(dng_date_time const&)', 'dng_time_zone::NotValid() const']

109 368 dng_date_time_info::Encode_ISO_8601()const call site: 00000 /src/dng_sdk/source/./dng_date_time.cpp:439
105 105 3 :

['dng_lzw_expander::dng_lzw_expander()', 'dng_lzw_expander::~dng_lzw_expander()', 'dng_lzw_expander::Expand(unsigned char const*, unsigned char*, int, int)']

121 316 dng_read_image::ReadTile(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &,AutoPtr &) call site: 00000 /src/dng_sdk/source/./dng_read_image.cpp:2296
101 195 4 :

['dng_ifd::dng_ifd(dng_ifd const&)', 'dng_ifd::~dng_ifd()', 'dng_row_interleaved_image::dng_row_interleaved_image(dng_image&, unsigned int)', 'dng_row_interleaved_image::~dng_row_interleaved_image()']

101 195 dng_image_writer::WriteImage(dng_host&,dng_ifdconst&,dng_basic_tag_set&,dng_stream&,dng_imageconst&,unsignedint) call site: 00000 /src/dng_sdk/source/./dng_image_writer.cpp:4578

Runtime coverage analysis

Covered functions
1370
Functions that are reachable but not covered
138
Reachable functions
1115
Percentage of reachable functions covered
87.62%
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/dng_fixed_validate_fuzzer.cpp 2
/src/dng_sdk/source/./dng_string.cpp 10
/src/dng_sdk/source/./dng_safe_arithmetic.h 3
/src/dng_sdk/source/./dng_exceptions.h 10
/src/dng_sdk/source/./dng_exceptions.cpp 1
/src/dng_sdk/source/./dng_memory.cpp 5
/src/dng_sdk/source/./dng_memory.h 10
/src/dng_sdk/source/./dng_safe_arithmetic.cpp 13
/src/dng_sdk/source/./dng_color_space.cpp 8
/src/dng_sdk/source/./dng_matrix.cpp 15
/src/dng_sdk/source/./dng_matrix.h 12
/src/dng_sdk/source/./dng_xy_coord.cpp 3
/src/dng_sdk/source/./dng_xy_coord.h 3
/src/dng_sdk/source/./dng_utils.h 21
/src/dng_sdk/source/./dng_color_space.h 3
/src/dng_sdk/source/./dng_file_stream.cpp 2
/src/dng_sdk/source/./dng_stream.cpp 12
/src/dng_sdk/source/./dng_host.cpp 5
/src/dng_sdk/source/./dng_host.h 10
/src/dng_sdk/source/./dng_string.h 1
/src/dng_sdk/source/./dng_auto_ptr.h 85
/src/dng_sdk/source/./dng_info.cpp 5
/src/dng_sdk/source/./dng_stream.h 3
/src/dng_sdk/source/./dng_bottlenecks.h 5
/src/dng_sdk/source/./dng_abort_sniffer.cpp 3
/src/dng_sdk/source/./dng_abort_sniffer.h 1
/src/dng_sdk/source/./dng_mutex.cpp 9
/src/dng_sdk/source/./dng_pthread.cpp 1
/src/dng_sdk/source/./dng_negative.cpp 34
/src/dng_sdk/source/./dng_rational.h 3
/src/dng_sdk/source/./dng_point.h 4
/src/dng_sdk/source/./dng_fingerprint.cpp 10
/src/dng_sdk/source/./dng_orientation.h 1
/src/dng_sdk/source/./dng_opcode_list.cpp 6
/src/dng_sdk/source/./dng_jpeg_image.h 4
/src/dng_sdk/source/./dng_negative.h 38
/src/dng_sdk/source/./dng_utils.cpp 7
/src/dng_sdk/source/./dng_ifd.h 1
/src/dng_sdk/source/./dng_rect.h 10
/src/dng_sdk/source/./dng_fingerprint.h 15
/src/dng_sdk/source/./dng_jpeg_image.cpp 7
/src/dng_sdk/source/./dng_area_task.cpp 2
/src/dng_sdk/source/./dng_image.h 5
/src/dng_sdk/source/./dng_tag_types.cpp 1
/src/dng_sdk/source/./dng_pixel_buffer.cpp 10
/src/dng_sdk/source/./dng_tile_iterator.cpp 4
/src/dng_sdk/source/./dng_image.cpp 8
/src/dng_sdk/source/./dng_rect.cpp 2
/src/dng_sdk/source/./dng_pixel_buffer.h 4
/src/dng_sdk/source/./dng_image_writer.cpp 7
/src/dng_sdk/source/./dng_opcodes.h 5
/src/dng_sdk/source/./dng_opcode_list.h 4
/src/dng_sdk/source/./dng_rational.cpp 1
/src/dng_sdk/source/./dng_mosaic_info.h 1
/src/dng_sdk/source/./dng_1d_function.h 2
/src/dng_sdk/source/./dng_1d_table.cpp 5
/src/dng_sdk/source/./dng_1d_function.cpp 2
/src/dng_sdk/source/./dng_misc_opcodes.h 1
/src/dng_sdk/source/./dng_misc_opcodes.cpp 1
/src/dng_sdk/source/./dng_opcodes.cpp 2
/src/dng_sdk/source/./dng_ifd.cpp 7
/src/dng_sdk/source/./dng_preview.cpp 7
/src/dng_sdk/source/./dng_date_time.cpp 8
/src/dng_sdk/source/./dng_date_time.h 9
/src/dng_sdk/source/./dng_render.cpp 5
/src/dng_sdk/source/./dng_render.h 8
/src/dng_sdk/source/./dng_camera_profile.h 4
/src/dng_sdk/source/./dng_tone_curve.cpp 2
/src/dng_sdk/source/./dng_spline.cpp 3
/src/dng_sdk/source/./dng_resample.cpp 8
/src/dng_sdk/source/./dng_resample.h 4
/src/dng_sdk/source/./dng_filter_task.cpp 2
/src/dng_sdk/source/./dng_memory_stream.cpp 2

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
dng_image_writer::WriteDNG(dng_host&,dng_stream&,dng_negativeconst&,dng_metadataconst&,dng_preview_listconst*,unsignedint,bool) /src/dng_sdk/source/./dng_image_writer.cpp 8 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'int', 'bool'] 13 0 4535 965 707 972 0 3485 2403
dng_host::Make_dng_opcode(unsignedint,dng_stream&) /src/dng_sdk/source/./dng_host.cpp 3 ['N/A', 'int', 'N/A'] 11 0 301 50 37 274 0 782 512
dng_render_task::Start(unsignedint,dng_pointconst&,dng_memory_allocator*,dng_abort_sniffer*) /src/dng_sdk/source/./dng_render.cpp 5 ['N/A', 'int', 'N/A', 'N/A', 'N/A'] 9 0 634 117 59 412 0 1025 469
dng_image_writer::WriteTIFFWithProfile(dng_host&,dng_stream&,dng_imageconst&,unsignedint,unsignedint,dng_metadataconst*,voidconst*,unsignedint,dng_resolutionconst*,dng_jpeg_previewconst*,dng_memory_blockconst*,dng_metadata_subset) /src/dng_sdk/source/./dng_image_writer.cpp 13 ['N/A', 'N/A', 'N/A', 'N/A', 'int', 'int', 'N/A', 'N/A', 'int', 'N/A', 'N/A', 'N/A', 'int'] 11 0 841 171 106 458 0 1837 396
dng_read_image::ReadLosslessJPEG(dng_host&,dng_ifdconst&,dng_stream&,dng_image&,dng_rectconst&,unsignedint,unsignedint,unsignedint,AutoPtr &,AutoPtr &) /src/dng_sdk/source/./dng_read_image.cpp 11 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'int', 'int', 'int', 'N/A', 'N/A'] 16 0 232 26 25 196 0 575 362
dng_negative::Parse(dng_host&,dng_stream&,dng_info&) /src/dng_sdk/source/./dng_negative.cpp 4 ['N/A', 'N/A', 'N/A', 'N/A'] 11 0 882 138 132 590 0 1273 317
dng_ifd::ReadImage(dng_host&,dng_stream&,dng_image&,dng_jpeg_image*,dng_fingerprint*)const /src/dng_sdk/source/./dng_ifd.cpp 6 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 11 0 60 6 6 281 0 691 284

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

Functions statically reachable by fuzzers
53.0%
1174 / 2213
Cyclomatic complexity statically reachable by fuzzers
56.0%
8405 / 14895

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/dng_camera_profile_fuzzer.cpp

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=['dng_stream::Flush()', 'ThrowEndOfFile(char const*)', 'dng_stream::Get_real64()', 'tiff_tag::Size() const', 'dng_stream::Put_uint32(unsigned int)', 'dng_file_stream::dng_file_stream(char const*, bool, unsigned int)', 'dng_stream::Get_uint16()', 'dng_stream::TagValue_uint32(unsigned int)', 'SafeUint32Add(unsigned int, unsigned int)', 'dng_string::Set_UTF8(char const*)']

/src/dng_validate_fuzzer.cpp

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=['dng_date_time_info::Encode_ISO_8601() const', 'dng_negative::TransparencyMask() const', 'Floor_uint32(double)', '(anonymous namespace)::InnermostMutexHolder::SetInnermostMutex(dng_mutex*)', 'dng_pixel_buffer::SetConstant(dng_rect const&, unsigned int, unsigned int, unsigned int)', 'dng_render::dng_render(dng_host&, dng_negative const&)', 'dng_render::Render()', 'dng_time_zone::Encode_ISO_8601() const', 'dng_memory_block::Buffer_real32()', 'dng_timer::~dng_timer()']

/src/dng_sdk/source/../fuzzer/dng_parser_fuzzer.cpp

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=['(anonymous namespace)::InnermostMutexHolder::SetInnermostMutex(dng_mutex*)', 'dng_stream::Flush()', 'AutoPtr::~AutoPtr()', 'dng_info::dng_info()', 'dng_memory_data::Allocate(unsigned int)', 'dng_memory_data::~dng_memory_data()', 'LLVMFuzzerTestOneInput', 'dng_negative::Make(dng_host&)', 'dng_info::Parse(dng_host&, dng_stream&)']

/src/dng_stage_fuzzer.cpp

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=['Invert(dng_matrix const&)', 'dng_rect::TL() const', 'runFuzzerWithVariableHost(char*, unsigned int, bool, bool, bool, bool, bool, bool, int, bool)', 'runFuzzerWithVariableHost(char*, unsigned int, bool, bool, bool, bool, bool, bool, int, bool)', 'ResampleImage(dng_host&, dng_image const&, dng_image&, dng_rect const&, dng_rect const&, dng_resample_function const&)', 'dng_stream::Flush()', 'dng_negative::FindNewRawImageDigest(dng_host&) const', 'operator*(dng_matrix const&, dng_vector const&)', 'dng_host::ValidateSizes()', 'dng_string::operator==(dng_string const&) const']

/src/dng_fixed_validate_fuzzer.cpp

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=['dng_date_time_info::Encode_ISO_8601() const', 'dng_negative::TransparencyMask() const', 'InvertNbyN(dng_matrix const&)', 'Floor_uint32(double)', '(anonymous namespace)::InnermostMutexHolder::SetInnermostMutex(dng_mutex*)', 'dng_pixel_buffer::SetConstant(dng_rect const&, unsigned int, unsigned int, unsigned int)', 'dng_render::dng_render(dng_host&, dng_negative const&)', 'dng_host::ValidateSizes()', 'dng_render::Render()', 'dng_time_zone::Encode_ISO_8601() const']

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/dng_sdk/source/./dng_point.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_color_space.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_mosaic_info.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_opcodes.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_camera_profile.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_temperature.cpp [] []
/src/dng_sdk/source/./dng_misc_opcodes.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/dng_sdk/source/./dng_tile_iterator.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_read_image.cpp [] []
/src/dng_sdk/source/./dng_spline.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_xy_coord.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_fixed_validate_fuzzer.cpp ['dng_fixed_validate_fuzzer'] ['dng_fixed_validate_fuzzer']
/src/dng_sdk/source/./dng_image_writer.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_resample.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_misc_opcodes.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_exceptions.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_image.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_rect.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_pixel_buffer.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_filter_task.h [] []
/src/dng_sdk/source/./dng_host.cpp ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_area_task.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_jpeg_image.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_orientation.cpp [] []
/src/dng_sdk/source/../fuzzer/dng_parser_fuzzer.cpp ['dng_parser_fuzzer'] []
/src/dng_sdk/source/./dng_color_space.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_fingerprint.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_matrix.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_area_task.h [] []
/src/dng_sdk/source/./dng_safe_arithmetic.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/dng_memory.cpp [] []
/src/dng_sdk/source/./dng_date_time.cpp ['dng_validate_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_parse_utils.cpp ['dng_camera_profile_fuzzer'] []
/src/dng_sdk/source/./dng_1d_function.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_exceptions.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_ref_counted_block.cpp ['dng_camera_profile_fuzzer', 'dng_stage_fuzzer'] []
/src/dng_sdk/source/./dng_host.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_stage_fuzzer.cpp ['dng_stage_fuzzer'] ['dng_stage_fuzzer']
/src/dng_sdk/source/./dng_linearization_info.cpp [] []
/src/dng_sdk/source/./dng_filter_task.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_string.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_safe_arithmetic.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/dng_date_time.cpp [] []
/src/dng_sdk/source/./dng_hue_sat_map.h ['dng_camera_profile_fuzzer', 'dng_stage_fuzzer'] []
/src/dng_sdk/source/./dng_string.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_spline.h [] []
/src/dng_sdk/source/./dng_preview.h [] []
/src/dng_sdk/source/./dng_rational.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_bottlenecks.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_utils.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_shared.h [] []
/src/dng_sdk/source/./dng_rational.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_opcode_list.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_resample.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_xy_coord.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_1d_table.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_exif.h [] []
/src/dng_sdk/source/./dng_date_time.h ['dng_validate_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_pixel_buffer.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_info.cpp ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/dng_string.cpp [] []
/src/dng_sdk/source/./dng_bad_pixels.h [] []
/src/dng_sdk/source/./dng_color_spec.h [] []
/src/dng_sdk/source/./dng_opcodes.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_camera_profile.cpp ['dng_camera_profile_fuzzer', 'dng_stage_fuzzer'] []
/src/dng_sdk/source/./dng_simple_image.cpp [] []
/src/dng_sdk/source/./dng_matrix.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_mutex.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_abort_sniffer.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_render.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_pthread.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_exif.cpp [] []
/src/dng_sdk/source/./dng_lens_correction.cpp [] []
/src/dng_sdk/source/./dng_render.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_camera_profile_fuzzer.cpp ['dng_camera_profile_fuzzer'] ['dng_camera_profile_fuzzer']
/src/dng_sdk/source/./dng_negative.h ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_read_image.h [] []
/src/dng_sdk/source/dng_abort_sniffer.cpp [] []
/src/dng_sdk/source/./dng_ifd.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_hue_sat_map.cpp ['dng_camera_profile_fuzzer', 'dng_stage_fuzzer'] []
/src/dng_sdk/source/dng_mutex.cpp [] []
/src/dng_sdk/source/./dng_jpeg_memory_source.cpp [] []
/src/dng_sdk/source/./dng_image_writer.h ['dng_camera_profile_fuzzer'] []
/src/dng_sdk/source/./dng_ref_counted_block.h ['dng_camera_profile_fuzzer', 'dng_stage_fuzzer'] []
/src/dng_sdk/source/./dng_negative.cpp ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_auto_ptr.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_reference.cpp [] []
/src/dng_sdk/source/./dng_mosaic_info.cpp [] []
/src/dng_sdk/source/./dng_color_spec.cpp [] []
/src/dng_sdk/source/./dng_abort_sniffer.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_fingerprint.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_memory.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_jpeg_image.h ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_opcode_list.cpp ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_image.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_shared.cpp ['dng_camera_profile_fuzzer'] []
/src/dng_sdk/source/./dng_rect.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_lens_correction.h [] []
/src/dng_sdk/source/./dng_stream.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_1d_table.h [] []
/src/dng_validate_fuzzer.cpp ['dng_validate_fuzzer'] ['dng_validate_fuzzer']
/src/dng_sdk/source/./dng_tone_curve.h ['dng_camera_profile_fuzzer', 'dng_stage_fuzzer'] []
/src/dng_sdk/source/./dng_gain_map.h [] []
/src/dng_sdk/source/./dng_tone_curve.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_bad_pixels.cpp [] []
/src/dng_sdk/source/./dng_orientation.h ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_memory_stream.cpp ['dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_gain_map.cpp [] []
/src/dng_sdk/source/./dng_preview.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_1d_function.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_memory.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_tag_types.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_lossless_jpeg.cpp [] []
/src/dng_sdk/source/./dng_utils.cpp ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_temperature.h [] []
/src/dng_sdk/source/./dng_lossless_jpeg.h [] []
/src/dng_sdk/source/./dng_ifd.h ['dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_file_stream.cpp ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []
/src/dng_sdk/source/./dng_stream.h ['dng_camera_profile_fuzzer', 'dng_validate_fuzzer', 'dng_parser_fuzzer', 'dng_stage_fuzzer', 'dng_fixed_validate_fuzzer'] []

Directories in report

Directory
/src/dng_sdk/source/./
/src/dng_sdk/source/../fuzzer/
/src/
/src/dng_sdk/source/
/usr/local/bin/../include/c++/v1/