Fuzz introspector: /src/librawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

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
318 318 1 :

['rawspeed::ArwDecoder::decodeSRF(rawspeed::TiffIFD const*)']

318 318 rawspeed::ArwDecoder::decodeRawInternal() call site /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:132
175 175 1 :

['void rawspeed::Cr2Decompressor ::decompressN_X_Y<3, 2, 1>()']

175 175 rawspeed::Cr2Decompressor ::decompress() call site /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:320
162 162 1 :

['void rawspeed::Cr2Decompressor ::decompressN_X_Y<3, 2, 2>()']

162 162 rawspeed::Cr2Decompressor ::decompress() call site /src/librawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h:316
98 98 1 :

['void rawspeed::UncompressedDecompressor::decodePackedInt > >(rawspeed::iPoint2D const&, rawspeed::iPoint2D const&, unsigned int, int, int, int) const']

98 98 rawspeed::UncompressedDecompressor::readUncompressedRaw(rawspeed::iPoint2Dconst&,rawspeed::iPoint2Dconst&,int,int,rawspeed::BitOrder) call site /src/librawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp:216
57 57 1 :

['rawspeed::CiffEntry::getByte(unsigned int) const']

57 57 rawspeed::CiffEntry::getU32(unsignedint)const call site /src/librawspeed/src/librawspeed/tiff/CiffEntry.cpp:117
56 56 1 :

['void rawspeed::UncompressedDecompressor::decode8BitRaw (unsigned int, unsigned int)']

110 252 rawspeed::DcsDecoder::decodeRawInternal() call site /src/librawspeed/src/librawspeed/decoders/DcsDecoder.cpp:72
56 56 1 :

['void rawspeed::UncompressedDecompressor::decodeRawUnpacked<14, (rawspeed::Endianness)48879>(unsigned int, unsigned int)']

110 144 rawspeed::ArwDecoder::DecodeUncompressed(rawspeed::TiffIFDconst*)const call site /src/librawspeed/src/librawspeed/decoders/ArwDecoder.cpp:258
38 38 1 :

['void rawspeed::DngOpcodes::PixelOpcode::applyOP ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1}>(rawspeed::RawImage const&, rawspeed::DngOpcodes::OffsetPerRowOrCol ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1})']

38 38 rawspeed::DngOpcodes::OffsetPerRowOrCol ::apply(rawspeed::RawImageconst&) call site /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:526
38 38 1 :

['void rawspeed::DngOpcodes::PixelOpcode::applyOP ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1}>(rawspeed::RawImage const&, rawspeed::DngOpcodes::OffsetPerRowOrCol ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1})']

38 38 rawspeed::DngOpcodes::OffsetPerRowOrCol ::apply(rawspeed::RawImageconst&) call site /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:526
38 38 1 :

['void rawspeed::DngOpcodes::PixelOpcode::applyOP ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1}>(rawspeed::RawImage const&, rawspeed::DngOpcodes::ScalePerRowOrCol ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1})']

38 38 rawspeed::DngOpcodes::ScalePerRowOrCol ::apply(rawspeed::RawImageconst&) call site /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:565
38 38 1 :

['void rawspeed::DngOpcodes::PixelOpcode::applyOP ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1}>(rawspeed::RawImage const&, rawspeed::DngOpcodes::ScalePerRowOrCol ::apply(rawspeed::RawImage const&)::{lambda(unsigned int, unsigned int, float)#1})']

38 38 rawspeed::DngOpcodes::ScalePerRowOrCol ::apply(rawspeed::RawImageconst&) call site /src/librawspeed/src/librawspeed/common/DngOpcodes.cpp:565
20 174 3 :

['rawspeed::AbstractSamsungDecompressor::~AbstractSamsungDecompressor()', 'rawspeed::SamsungV1Decompressor::SamsungV1Decompressor(rawspeed::RawImage const&, rawspeed::ByteStream const&, int)', 'rawspeed::SamsungV1Decompressor::decompress() const']

20 646 rawspeed::SrwDecoder::decodeRawInternal() call site /src/librawspeed/src/librawspeed/decoders/SrwDecoder.cpp:107

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 rawspeed::Buffer::Buffer(unsigned char const*, unsigned int) [function] [call site] 00002
2 rawspeed::ASan::RegionIsPoisoned(void const volatile*, unsigned long) [function] [call site] 00003
2 __assert_fail [call site] 00004
1 rawspeed::DataBuffer::DataBuffer(rawspeed::Buffer const&, rawspeed::Endianness) [function] [call site] 00005
2 rawspeed::Buffer::Buffer(rawspeed::Buffer const&) [function] [call site] 00006
3 rawspeed::ASan::RegionIsPoisoned(void const volatile*, unsigned long) [function] [call site] 00007
3 __assert_fail [call site] 00008
1 rawspeed::ByteStream::ByteStream(rawspeed::DataBuffer const&) [function] [call site] 00009
2 rawspeed::DataBuffer::DataBuffer(rawspeed::DataBuffer const&) [function] [call site] 00010
3 rawspeed::Buffer::Buffer(rawspeed::Buffer const&) [function] [call site] 00011
1 CreateRawImage(rawspeed::ByteStream&) [function] [call site] 00012
2 rawspeed::ByteStream::getU32() [function] [call site] 00013
3 unsigned int rawspeed::ByteStream::get () [function] [call site] 00014
4 unsigned int rawspeed::ByteStream::peek (unsigned int) const [function] [call site] 00015
5 unsigned int rawspeed::DataBuffer::get (unsigned int, unsigned int) const [function] [call site] 00016
6 __assert_fail [call site] 00017
6 __assert_fail [call site] 00018
6 rawspeed::getHostEndianness() [function] [call site] 00019
6 unsigned int rawspeed::Buffer::get (bool, unsigned int, unsigned int) const [function] [call site] 00020
7 rawspeed::Buffer::getData(unsigned int, unsigned int) const [function] [call site] 00021
8 rawspeed::Buffer::isValid(unsigned int, unsigned int) const [function] [call site] 00022
8 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00023
9 vsnprintf [call site] 00024
9 rawspeed::writeLog(rawspeed::DEBUG_PRIO, char const*, ...) [function] [call site] 00025
9 __cxa_allocate_exception [call site] 00026
9 rawspeed::IOException::RawspeedException(char const*) [function] [call site] 00027
10 rawspeed::RawspeedException::RawspeedException(char const*) [function] [call site] 00028
11 std::runtime_error::runtime_error(char const*) [call site] 00029
11 rawspeed::RawspeedException::log(char const*) [function] [call site] 00030
12 rawspeed::writeLog(rawspeed::DEBUG_PRIO, char const*, ...) [function] [call site] 00031
11 std::runtime_error::~runtime_error() [call site] 00032
8 __assert_fail [call site] 00033
8 rawspeed::ASan::RegionIsPoisoned(void const volatile*, unsigned long) [function] [call site] 00034
8 __assert_fail [call site] 00035
7 unsigned int rawspeed::getByteSwapped (void const*, bool) [function] [call site] 00036
8 rawspeed::getByteSwapped(unsigned int) [function] [call site] 00037
2 rawspeed::ByteStream::getU32() [function] [call site] 00038
2 rawspeed::ByteStream::getU32() [function] [call site] 00039
2 rawspeed::ByteStream::getU32() [function] [call site] 00040
2 rawspeed::ByteStream::getU32() [function] [call site] 00041
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00042
3 rawspeed::RawspeedException::RawspeedException(char const*) [function] [call site] 00043
2 rawspeed::RawImage::create(rawspeed::RawImageType) [function] [call site] 00044
3 rawspeed::RawImageDataU16::RawImageDataU16() [function] [call site] 00045
4 rawspeed::RawImageData::RawImageData() [function] [call site] 00046
5 rawspeed::ErrorLog::ErrorLog() [function] [call site] 00047
5 rawspeed::iPoint2D::iPoint2D() [function] [call site] 00048
5 rawspeed::ColorFilterArray::ColorFilterArray(rawspeed::iPoint2D const&) [function] [call site] 00049
6 rawspeed::iPoint2D::iPoint2D() [function] [call site] 00050
6 rawspeed::ColorFilterArray::setSize(rawspeed::iPoint2D const&) [function] [call site] 00051
7 rawspeed::iPoint2D::iPoint2D(int, int) [function] [call site] 00052
7 rawspeed::iPoint2D::hasPositiveArea() const [function] [call site] 00053
8 rawspeed::iPoint2D::iPoint2D(int, int) [function] [call site] 00054
7 __assert_fail [call site] 00055
7 rawspeed::iPoint2D::area() const [function] [call site] 00056
7 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00059
8 rawspeed::RawDecoderException::RawspeedException(char const*) [function] [call site] 00060
5 rawspeed::ImageMetaData::ImageMetaData() [function] [call site] 00061
6 rawspeed::iPoint2D::iPoint2D(int, int) [function] [call site] 00062
5 rawspeed::ImageMetaData::~ImageMetaData() [function] [call site] 00063
5 rawspeed::ColorFilterArray::~ColorFilterArray() [function] [call site] 00064
5 rawspeed::ErrorLog::~ErrorLog() [function] [call site] 00065
3 rawspeed::RawImageDataFloat::RawImageDataFloat() [function] [call site] 00066
4 rawspeed::RawImageData::RawImageData() [function] [call site] 00067
3 rawspeed::writeLog(rawspeed::DEBUG_PRIO, char const*, ...) [function] [call site] 00068
3 rawspeed::RawImage::RawImage(rawspeed::RawImageData*) [function] [call site] 00069
4 rawspeed::MutexLocker::MutexLocker(rawspeed::Mutex*) [function] [call site] 00070
5 rawspeed::Mutex::Lock() const [function] [call site] 00071
4 rawspeed::MutexLocker::~MutexLocker() [function] [call site] 00072
5 rawspeed::Mutex::Unlock() const [function] [call site] 00073
2 rawspeed::iPoint2D::iPoint2D(int, int) [function] [call site] 00074
2 rawspeed::RawImage::operator->() const [function] [call site] 00075
2 rawspeed::RawImage::operator->() const [function] [call site] 00076
2 rawspeed::RawImageData::setCpp(unsigned int) [function] [call site] 00077
3 rawspeed::RawImageData::isAllocated() const [function] [call site] 00078
3 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00079
3 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00080
2 rawspeed::RawImage::operator->() const [function] [call site] 00081
2 rawspeed::RawImage::~RawImage() [function] [call site] 00082
3 rawspeed::Mutex::Lock() const [function] [call site] 00083
3 rawspeed::Mutex::Unlock() const [function] [call site] 00084
3 rawspeed::Mutex::Unlock() const [function] [call site] 00085
1 rawspeed::OlympusDecompressor::OlympusDecompressor(rawspeed::RawImage const&) [function] [call site] 00086
2 rawspeed::RawImage::RawImage(rawspeed::RawImage const&) [function] [call site] 00087
3 rawspeed::MutexLocker::MutexLocker(rawspeed::Mutex*) [function] [call site] 00088
3 rawspeed::MutexLocker::~MutexLocker() [function] [call site] 00089
2 rawspeed::SimpleLUT ::SimpleLUT >(rawspeed::OlympusDecompressor::bittable::{lambda(unsigned int, unsigned int)#1}&&) [function] [call site] 00090
3 __assert_fail [call site] 00091
2 rawspeed::RawImage::operator->() const [function] [call site] 00092
2 rawspeed::RawImage::operator->() const [function] [call site] 00093
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00094
2 rawspeed::RawImage::operator->() const [function] [call site] 00095
2 rawspeed::RawImage::operator->() const [function] [call site] 00096
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00097
2 rawspeed::SimpleLUT ::~SimpleLUT() [function] [call site] 00098
2 rawspeed::RawImage::~RawImage() [function] [call site] 00099
1 rawspeed::RawImageData::createData() [function] [call site] 00100
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00101
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00102
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00103
2 rawspeed::RawImageData::isAllocated() const [function] [call site] 00104
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00105
2 rawspeed::roundUp(unsigned long, unsigned long) [function] [call site] 00106
3 rawspeed::roundToMultiple(unsigned long, unsigned long, bool) [function] [call site] 00107
2 _ZN8rawspeed9isAlignedIiEEbT_mPNSt3__19enable_ifIXntsr3stdE12is_pointer_vIS1_EEvE4typeE [function] [call site] 00108
2 __assert_fail [call site] 00109
2 unsigned char* rawspeed::alignedMallocArray (unsigned long, unsigned long) [function] [call site] 00110
3 unsigned char* rawspeed::alignedMalloc (unsigned long) [function] [call site] 00111
4 rawspeed::alignedMalloc(unsigned long, unsigned long) [function] [call site] 00112
5 bool rawspeed::isPowerOfTwo (unsigned long) [function] [call site] 00113
5 __assert_fail [call site] 00114
5 _ZN8rawspeed9isAlignedImEEbT_mPNSt3__19enable_ifIXntsr3stdE12is_pointer_vIS1_EEvE4typeE [function] [call site] 00115
5 __assert_fail [call site] 00116
5 _ZN8rawspeed9isAlignedImEEbT_mPNSt3__19enable_ifIXntsr3stdE12is_pointer_vIS1_EEvE4typeE [function] [call site] 00117
5 __assert_fail [call site] 00118
5 _ZN8rawspeed9isAlignedIPvEEbT_mPNSt3__19enable_ifIXsr3stdE12is_pointer_vIS2_EEvE4typeE [function] [call site] 00119
2 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00120
2 rawspeed::RawImageData::getByteDataAsUncroppedArray2DRef() const [function] [call site] 00121
3 rawspeed::RawImageData::getU16DataAsUncroppedArray2DRef() const [function] [call site] 00122
4 __assert_fail [call site] 00123
4 __assert_fail [call site] 00124
4 rawspeed::Array2DRef ::Array2DRef(unsigned short*, int, int, int) [function] [call site] 00125
5 __assert_fail [call site] 00126
5 __assert_fail [call site] 00127
3 rawspeed::Array2DRef ::Array2DRef (rawspeed::Array2DRef ) [function] [call site] 00128
3 rawspeed::RawImageData::getF32DataAsUncroppedArray2DRef() const [function] [call site] 00129
4 __assert_fail [call site] 00130
4 __assert_fail [call site] 00131
4 rawspeed::Array2DRef ::Array2DRef(float*, int, int, int) [function] [call site] 00132
3 rawspeed::Array2DRef ::Array2DRef (rawspeed::Array2DRef ) [function] [call site] 00133
2 rawspeed::Array2DRef ::operator()(int, int) const [function] [call site] 00134
3 __assert_fail [call site] 00135
3 __assert_fail [call site] 00136
3 rawspeed::Array2DRef ::operator[](int) const [function] [call site] 00137
4 __assert_fail [call site] 00138
4 __assert_fail [call site] 00139
4 __assert_fail [call site] 00140
2 __assert_fail [call site] 00141
2 rawspeed::Array2DRef ::operator()(int, int) const [function] [call site] 00142
2 _ZN8rawspeed9isAlignedIPSt4byteEEbT_mPNSt3__19enable_ifIXsr3stdE12is_pointer_vIS3_EEvE4typeE [function] [call site] 00143
2 __assert_fail [call site] 00144
1 rawspeed::ByteStream::getRemainSize() const [function] [call site] 00145
2 __assert_fail [call site] 00146
2 rawspeed::ByteStream::check(unsigned int) const [function] [call site] 00147
3 rawspeed::ASan::RegionIsPoisoned(void const volatile*, unsigned long) [function] [call site] 00148
3 __assert_fail [call site] 00149
1 rawspeed::OlympusDecompressor::decompress(rawspeed::ByteStream) const [function] [call site] 00150
2 rawspeed::RawImage::operator->() const [function] [call site] 00151
2 __assert_fail [call site] 00152
2 rawspeed::RawImage::operator->() const [function] [call site] 00153
2 __assert_fail [call site] 00154
2 rawspeed::RawImage::operator->() const [function] [call site] 00155
2 __assert_fail [call site] 00156
2 rawspeed::BitStream >::BitStream(rawspeed::ByteStream const&) [function] [call site] 00157
3 rawspeed::ByteStream::getPosition() const [function] [call site] 00158
4 __assert_fail [call site] 00159
4 rawspeed::ByteStream::check(unsigned int) const [function] [call site] 00160
3 rawspeed::Buffer::getSubView(unsigned int, unsigned int) const [function] [call site] 00161
4 rawspeed::Buffer::isValid(unsigned int, unsigned int) const [function] [call site] 00162
4 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00163
4 rawspeed::Buffer::getData(unsigned int, unsigned int) const [function] [call site] 00164
3 rawspeed::BitStream >::BitStream(rawspeed::Buffer const&) [function] [call site] 00165
4 rawspeed::BitStreamCacheRightInLeftOut::BitStreamCacheRightInLeftOut() [function] [call site] 00166
5 rawspeed::BitStreamCacheBase::BitStreamCacheBase() [function] [call site] 00167
2 rawspeed::RawImage::operator->() const [function] [call site] 00168
2 rawspeed::OlympusDecompressor::decompressRow(rawspeed::BitStream >&, int) const [function] [call site] 00169
3 rawspeed::RawImage::operator->() const [function] [call site] 00170
3 __assert_fail [call site] 00171
3 rawspeed::RawImage::operator->() const [function] [call site] 00172
3 __assert_fail [call site] 00173
3 rawspeed::RawImage::operator->() const [function] [call site] 00174
3 __assert_fail [call site] 00175
3 rawspeed::RawImage::operator->() const [function] [call site] 00176
3 rawspeed::BitStream >::fill(unsigned int) [function] [call site] 00177
4 __assert_fail [call site] 00178
4 rawspeed::BitStreamForwardSequentialReplenisher ::getInput() [function] [call site] 00179
5 void rawspeed::ThrowException (char const*, ...) [function] [call site] 00180
4 rawspeed::BitStream >::fillCache(unsigned char const*) [function] [call site] 00181
5 unsigned int rawspeed::getBE (void const*) [function] [call site] 00182
6 rawspeed::getHostEndianness() [function] [call site] 00183
5 rawspeed::BitStreamCacheRightInLeftOut::push(unsigned long, unsigned int) [function] [call site] 00184
3 rawspeed::SimpleLUT ::operator[](int) const [function] [call site] 00185
4 _ZN8rawspeed9clampBitsIiEEtT_jPNSt3__19enable_ifIXsr3stdE15is_arithmetic_vIS1_EEvE4typeE [function] [call site] 00186
5 unsigned int rawspeed::bitwidth (int) [function] [call site] 00187
5 __assert_fail [call site] 00188
3 rawspeed::OlympusDecompressor::getPred(rawspeed::Array2DRef , int, int) [function] [call site] 00189
4 rawspeed::OlympusDecompressor::getPred(rawspeed::Array2DRef , int, int)::{lambda()#1}::operator()() const [function] [call site] 00190
5 rawspeed::Array2DRef ::operator()(int, int) const [function] [call site] 00191
4 rawspeed::OlympusDecompressor::getPred(rawspeed::Array2DRef , int, int)::{lambda()#2}::operator()() const [function] [call site] 00192
5 rawspeed::Array2DRef ::operator()(int, int) const [function] [call site] 00193
4 rawspeed::OlympusDecompressor::getPred(rawspeed::Array2DRef , int, int)::{lambda()#1}::operator()() const [function] [call site] 00194
4 rawspeed::OlympusDecompressor::getPred(rawspeed::Array2DRef , int, int)::{lambda()#2}::operator()() const [function] [call site] 00195
4 rawspeed::OlympusDecompressor::getPred(rawspeed::Array2DRef , int, int)::{lambda()#3}::operator()() const [function] [call site] 00196
5 rawspeed::Array2DRef ::operator()(int, int) const [function] [call site] 00197
4 bool (anonymous namespace)::SignBit (int) [function] [call site] 00198
3 rawspeed::Array2DRef ::operator()(int, int) const [function] [call site] 00199
1 rawspeed::Buffer::~Buffer() [function] [call site] 00200
2 rawspeed::alignedFreeConstPtr(void const*) [function] [call site] 00201
3 rawspeed::alignedFree(void*) [function] [call site] 00202
2 __clang_call_terminate [call site] 00203
3 __cxa_begin_catch [call site] 00204
1 rawspeed::RawImage::operator->() const [function] [call site] 00205
1 rawspeed::RawImageData::checkMemIsInitialized() const [function] [call site] 00206
1 rawspeed::OlympusDecompressor::~OlympusDecompressor() [function] [call site] 00207
2 rawspeed::SimpleLUT ::~SimpleLUT() [function] [call site] 00208
2 rawspeed::RawImage::~RawImage() [function] [call site] 00209
1 rawspeed::Buffer::~Buffer() [function] [call site] 00210