Fuzz introspector

Project overview

High level conclusions

Fuzzers reach 15.72% of cyclomatic complexity. Improvements could be made
Fuzzers reach 12.90% of all functions. Improvements need to be made
Fuzzer FuzzSHA384 is blocked: runtime coverage only covers 0.0% of its reachable functions.
Fuzzer FuzzELF is blocked: runtime coverage only covers 23.88% of its reachable functions.

Reachability and coverage overview

Functions statically reachable by fuzzers
12.91%
5281/40922
Cyclomatic complexity statically reachable by fuzzers
15.73%
21468/136492
Functions covered at runtime
15807

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
FuzzRSAKeyParsing /src/serenity/Meta/Lagom/Fuzzers/FuzzRSAKeyParsing.cpp 216 1305 12 27 1323 673 FuzzRSAKeyParsing.cpp
FuzzShell /src/serenity/Meta/Lagom/Fuzzers/FuzzShell.cpp 703 11116 33 73 6861 2795 FuzzShell.cpp
FuzzJs /src/serenity/Meta/Lagom/Fuzzers/FuzzJs.cpp 1500 20810 29 143 13062 5742 FuzzJs.cpp
FuzzQOILoader /src/serenity/Meta/Lagom/Fuzzers/FuzzQOILoader.cpp 158 5646 12 25 813 440 FuzzQOILoader.cpp
FuzzGIFLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzGIFLoader.cpp 306 5499 17 43 2116 1043 FuzzGIFLoader.cpp
FuzzGzipDecompression /src/serenity/Meta/Lagom/Fuzzers/FuzzGzipDecompression.cpp 167 1160 12 26 1013 521 FuzzGzipDecompression.cpp
FuzzDeflateCompression /src/serenity/Meta/Lagom/Fuzzers/FuzzDeflateCompression.cpp 155 246 11 19 1070 513 FuzzDeflateCompression.cpp
FuzzHebrewDecoder /src/serenity/Meta/Lagom/Fuzzers/FuzzHebrewDecoder.cpp 181 913 17 29 1727 828 FuzzHebrewDecoder.cpp
FuzzZlibDecompression /src/serenity/Meta/Lagom/Fuzzers/FuzzZlibDecompression.cpp 149 258 14 22 899 461 FuzzZlibDecompression.cpp
FuzzMP3Loader /src/serenity/Meta/Lagom/Fuzzers/FuzzMP3Loader.cpp 382 2689 18 67 2245 1181 FuzzMP3Loader.cpp
FuzzWasmParser /src/serenity/Meta/Lagom/Fuzzers/FuzzWasmParser.cpp 439 1687 17 40 3184 1465 FuzzWasmParser.cpp
FuzzASN1 /src/serenity/Meta/Lagom/Fuzzers/FuzzASN1.cpp 383 1175 15 53 3222 1505 FuzzASN1.cpp
FuzzGemini /src/serenity/Meta/Lagom/Fuzzers/FuzzGemini.cpp 387 700 19 51 3655 1578 FuzzGemini.cpp
FuzzPBMLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzPBMLoader.cpp 265 5539 13 47 1773 904 FuzzPBMLoader.cpp
FuzzSHA256 /src/serenity/Meta/Lagom/Fuzzers/FuzzSHA256.cpp 12 850 5 4 59 34 FuzzSHA256.cpp
FuzzCyrillicDecoder /src/serenity/Meta/Lagom/Fuzzers/FuzzCyrillicDecoder.cpp 181 913 17 29 1727 828 FuzzCyrillicDecoder.cpp
FuzzJPGLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzJPGLoader.cpp 330 5474 19 44 2507 1216 FuzzJPGLoader.cpp
FuzzSQLParser /src/serenity/Meta/Lagom/Fuzzers/FuzzSQLParser.cpp 436 6739 17 47 3739 1673 FuzzSQLParser.cpp
FuzzLatin2Decoder /src/serenity/Meta/Lagom/Fuzzers/FuzzLatin2Decoder.cpp 181 913 17 29 1727 828 FuzzLatin2Decoder.cpp
FuzzBMPLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzBMPLoader.cpp 277 5527 15 37 1774 890 FuzzBMPLoader.cpp
FuzzQuotedPrintableParser /src/serenity/Meta/Lagom/Fuzzers/FuzzQuotedPrintableParser.cpp 72 754 10 15 340 191 FuzzQuotedPrintableParser.cpp
FuzzUTF16BEDecoder /src/serenity/Meta/Lagom/Fuzzers/FuzzUTF16BEDecoder.cpp 181 913 17 29 1727 828 FuzzUTF16BEDecoder.cpp
FuzzLatin1Decoder /src/serenity/Meta/Lagom/Fuzzers/FuzzLatin1Decoder.cpp 181 913 17 29 1727 828 FuzzLatin1Decoder.cpp
FuzzRegexECMA262 /src/serenity/Meta/Lagom/Fuzzers/FuzzRegexECMA262.cpp 190 2892 11 38 1083 531 FuzzRegexECMA262.cpp
FuzzFlacLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzFlacLoader.cpp 305 3728 18 55 1476 845 FuzzFlacLoader.cpp
FuzzELF /src/serenity/Meta/Lagom/Fuzzers/FuzzELF.cpp 180 813 15 34 1145 597 FuzzELF.cpp
FuzzSHA1 /src/serenity/Meta/Lagom/Fuzzers/FuzzSHA1.cpp 10 825 4 5 57 32 FuzzSHA1.cpp
FuzzHttpRequest /src/serenity/Meta/Lagom/Fuzzers/FuzzHttpRequest.cpp 149 955 13 30 803 423 FuzzHttpRequest.cpp
FuzzURL /src/serenity/Meta/Lagom/Fuzzers/FuzzURL.cpp 309 671 15 39 3072 1306 FuzzURL.cpp
FuzzWAVLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzWAVLoader.cpp 187 3517 18 47 816 492 FuzzWAVLoader.cpp
FuzzRegexPosixExtended /src/serenity/Meta/Lagom/Fuzzers/FuzzRegexPosixExtended.cpp 187 2895 11 38 1068 523 FuzzRegexPosixExtended.cpp
FuzzZip /src/serenity/Meta/Lagom/Fuzzers/FuzzZip.cpp 66 821 7 21 363 201 FuzzZip.cpp
FuzzPGMLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzPGMLoader.cpp 271 5533 13 47 1777 899 FuzzPGMLoader.cpp
FuzzWOFF /src/serenity/Meta/Lagom/Fuzzers/FuzzWOFF.cpp 232 7475 11 39 1584 760 FuzzWOFF.cpp
FuzzICOLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzICOLoader.cpp 433 5371 22 49 3459 1620 FuzzICOLoader.cpp
FuzzDeflateDecompression /src/serenity/Meta/Lagom/Fuzzers/FuzzDeflateDecompression.cpp 144 257 12 21 870 445 FuzzDeflateDecompression.cpp
FuzzRegexPosixBasic /src/serenity/Meta/Lagom/Fuzzers/FuzzRegexPosixBasic.cpp 187 2895 11 38 1068 523 FuzzRegexPosixBasic.cpp
FuzzTTF /src/serenity/Meta/Lagom/Fuzzers/FuzzTTF.cpp 78 7629 10 20 509 250 FuzzTTF.cpp
FuzzPDF /src/serenity/Meta/Lagom/Fuzzers/FuzzPDF.cpp 731 4960 19 75 8458 3544 FuzzPDF.cpp
FuzzMD5 /src/serenity/Meta/Lagom/Fuzzers/FuzzMD5.cpp 22 824 5 7 76 51 FuzzMD5.cpp
FuzzMarkdown /src/serenity/Meta/Lagom/Fuzzers/FuzzMarkdown.cpp 510 22383 15 76 3651 1675 FuzzMarkdown.cpp
FuzzIMAPParser /src/serenity/Meta/Lagom/Fuzzers/FuzzIMAPParser.cpp 428 1036 16 50 3569 1590 FuzzIMAPParser.cpp
FuzzPEM /src/serenity/Meta/Lagom/Fuzzers/FuzzPEM.cpp 177 723 14 29 1264 622 FuzzPEM.cpp
FuzzPPMLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzPPMLoader.cpp 274 5530 13 47 1818 914 FuzzPPMLoader.cpp
FuzzPoly1305 /src/serenity/Meta/Lagom/Fuzzers/FuzzPoly1305.cpp 40 20 10 12 180 108 FuzzPoly1305.cpp
FuzzSHA384 /src/serenity/Meta/Lagom/Fuzzers/FuzzSHA384.cpp 12 850 5 4 59 34 FuzzSHA384.cpp
FuzzSHA512 /src/serenity/Meta/Lagom/Fuzzers/FuzzSHA512.cpp 12 850 5 4 59 34 FuzzSHA512.cpp
FuzzPNGLoader /src/serenity/Meta/Lagom/Fuzzers/FuzzPNGLoader.cpp 393 5411 20 47 3155 1473 FuzzPNGLoader.cpp
FuzzGzipCompression /src/serenity/Meta/Lagom/Fuzzers/FuzzGzipCompression.cpp 170 1157 12 24 1116 546 FuzzGzipCompression.cpp

Fuzzer details

Fuzzer: FuzzRSAKeyParsing

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
68 345 Crypto::PK::RSA::parse_rsa_key(AK::Span ) call site __assert_fail
4 316 Crypto::PK::RSA::parse_rsa_key(AK::Span ) call site
3 176 AK::Vector ::try_resize_and_keep_capacity(unsigned long) call site __assert_fail
3 180 AK::Vector ::clear_with_capacity() call site
3 322 Crypto::PK::RSA::parse_rsa_key(AK::Span ) call site
2 3 Crypto::PK::RSA::parse_rsa_key(AK::Span ) call site
2 123 kmalloc_array(AK::Checked , AK::Checked ) call site
2 162 AK::Result Crypto::ASN1::Decoder::with_type_check (AK::Result &&) call site
2 296 Crypto::UnsignedBigInteger::trimmed_length() const call site __assert_fail
1 8 Crypto::UnsignedBigInteger::UnsignedBigInteger(unsigned int) call site
1 10 Crypto::PK::RSA::parse_rsa_key(AK::Span ) call site
1 23 Crypto::ASN1::Decoder::peek() call site

Runtime coverage analysis

Covered functions
403
Functions that are reachable but not covered
53
Reachable functions
216
Percentage of reachable functions covered
75.46%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzRSAKeyParsing.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/Userland/Libraries/LibCrypto/PK/RSA.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/PK/RSA.h 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/BigInt/UnsignedBigInteger.h 9
/src/serenity/Meta/Lagom/../../AK/Vector.h 34
/src/serenity/Meta/Lagom/../../AK/Error.h 8
/ 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/ASN1/DER.h 14
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 3
/src/serenity/Userland/Libraries/LibCrypto/ASN1/DER.cpp 15
/src/serenity/Meta/Lagom/../../AK/Result.h 48
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 12
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 3
/src/serenity/Userland/Libraries/LibCrypto/BigInt/UnsignedBigInteger.cpp 3
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 4
/src/serenity/AK/Utf8View.cpp 2
/src/serenity/Meta/Lagom/../../AK/StringView.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 1
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2
/src/serenity/Meta/Lagom/../../AK/Array.h 2
/src/serenity/Meta/Lagom/../../AK/BitmapView.h 2
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 18
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3

Fuzzer: FuzzShell

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
246 1810 Shell::Parser::parse_regex_pattern() call site _ZZN5regex5RegexINS_13ECMA262ParserEE18split_basic_blocksERKNS_8ByteCodeEENKUlTyRKNS_6OpCodeEE_clINS_11OpCode_JumpEEEDaS8_
92 1085 Shell::Parser::parse_bareword() call site __assert_fail
32 2153 Shell::Parser::parse_match_entry() call site __assert_fail
20 863 Shell::Parser::parse_for_loop() call site
19 2403 Shell::Parser::parse_function_decl() call site __assert_fail
18 400 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
17 2057 void AK::Variant , AK::Vector , 0ul> >::set , AK::NonnullRefPtrVector >(AK::NonnullRefPtrVector &&, AK::Detail::VariantNoClearTag) call site __assert_fail
14 821 Shell::Parser::parse_continuation_control() call site
13 946 AK::String::String() call site
12 836 Shell::Parser::parse_continuation_control() call site
11 189 AK::StringView::substring_view(unsigned long) const call site
11 341 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail

Runtime coverage analysis

Covered functions
1479
Functions that are reachable but not covered
250
Reachable functions
703
Percentage of reachable functions covered
64.44%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzShell.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/ 7
/src/serenity/Meta/Lagom/../../Userland/Shell/Parser.h 3
/src/serenity/Meta/Lagom/../../AK/Vector.h 92
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 23
/src/serenity/Userland/Shell/Parser.cpp 145
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 6
/src/serenity/Userland/Shell/Parser.h 11
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 11
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtrVector.h 2
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/Function.h 15
/src/serenity/Meta/Lagom/../../AK/Atomic.h 1
/src/serenity/Meta/Lagom/../../AK/BitCast.h 6
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2
/src/serenity/Meta/Lagom/../../AK/StringView.h 10
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 5
/src/serenity/Meta/Lagom/../../AK/String.h 19
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 15
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/AK/Format.cpp 21
/src/serenity/AK/StringView.cpp 5
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/Array.h 5
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 2
/src/serenity/AK/StringBuilder.cpp 12
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/AK/String.cpp 8
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 6
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 35
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 2
/src/serenity/Userland/Shell/AST.cpp 6
/src/serenity/Userland/Shell/AST.h 29
/src/serenity/AK/StringUtils.cpp 7
//usr/include/ctype.h 2
/src/serenity/Meta/Lagom/../../AK/Utf32View.h 3
/src/serenity/Meta/Lagom/../../AK/UnicodeUtils.h 1
/src/serenity/Userland/Shell/Shell.h 1
/src/serenity/Meta/Lagom/../../AK/ScopedValueRollback.h 4
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 4
/src/serenity/Meta/Lagom/../../AK/TemporaryChange.h 4
/src/serenity/Meta/Lagom/../../AK/Traits.h 1
/src/serenity/Meta/Lagom/../../AK/AllOf.h 3
/src/serenity/Meta/Lagom/../../AK/Find.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexOptions.h 1
/src/serenity/Userland/Libraries/LibRegex/RegexMatcher.cpp 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexParser.h 10
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.h 4
/src/serenity/Meta/Lagom/../../AK/DisjointChunks.h 9
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.cpp 2
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptions.h 5
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.cpp 8
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 11
/src/serenity/Userland/Libraries/LibRegex/RegexParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptimizer.cpp 7
/src/serenity/Userland/Libraries/LibRegex/RegexMatch.h 2
/src/serenity/Meta/Lagom/../../AK/QuickSort.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexMatcher.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexByteCode.h 1
/src/serenity/Meta/Lagom/../../AK/Variant.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexError.h 1

Fuzzer: FuzzJs

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
209 3579 kmalloc_array(AK::Checked , AK::Checked ) call site __assert_fail
150 2348 JS::Parser::consume_or_insert_semicolon() call site __assert_fail
129 3326 JS::ClassExpression::name() const call site __assert_fail
106 1948 JS::StringLiteral::value() const call site __assert_fail
85 2799 AK::HashMap , AK::Traits , false>::find(AK::StringView const&) call site
81 2885 JS::Parser::parse_statement_list(JS::ScopeNode&, JS::Parser::AllowLabelledFunction) call site __assert_fail
71 3460 AK::Utf8View::calculate_length() const call site __assert_fail
63 3262 JS::Parser::parse_script(JS::Program&, bool) call site __assert_fail
62 3182 JS::Parser::parse_if_statement() call site
46 2752 JS::ScopeNode::for_each_lexically_declared_name(JS::ThrowCompletionOrVoidCallback &&) const call site
43 2055 AK::HashTable , AK::Traits , false>::Entry, AK::HashMap , AK::Traits , false>::EntryTraits, false>::~HashTable() call site
41 2099 AK::RefPtr >::swap(AK::RefPtr >&) call site __assert_fail

Runtime coverage analysis

Covered functions
6391
Functions that are reachable but not covered
443
Reachable functions
1500
Percentage of reachable functions covered
70.47%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzJs.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/ 13
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 29
/src/serenity/Userland/Libraries/LibJS/Runtime/VM.cpp 11
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 9
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/CommonPropertyNames.h 1
/src/serenity/Meta/Lagom/../../AK/FlyString.h 13
/src/serenity/Meta/Lagom/../../AK/String.h 18
/src/serenity/AK/StringImpl.cpp 6
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 47
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 10
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 8
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 14
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/AK/FlyString.cpp 7
/src/serenity/Meta/Lagom/../../AK/Singleton.h 4
/src/serenity/Meta/Lagom/../../AK/Atomic.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 78
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 6
/src/serenity/Meta/Lagom/../../AK/Error.h 12
/src/serenity/Meta/Lagom/../../AK/Variant.h 53
/src/serenity/Meta/Lagom/../../AK/BitCast.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/PropertyKey.h 12
/src/serenity/Meta/Lagom/../../AK/Function.h 41
/src/serenity/Meta/Lagom/../../AK/HashMap.h 43
/src/serenity/Userland/Libraries/LibJS/Heap/Heap.cpp 14
/src/serenity/Meta/Lagom/../../AK/Vector.h 135
/src/serenity/Meta/Lagom/../../AK/IntrusiveList.h 22
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/BlockAllocator.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 16
/src/serenity/Userland/Libraries/LibJS/Heap/CellAllocator.cpp 4
/src/serenity/AK/StackInfo.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/Heap.h 20
/src/serenity/Meta/Lagom/../../AK/TemporaryChange.h 2
/src/serenity/Userland/Libraries/LibCore/ElapsedTimer.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/ElapsedTimer.h 2
/src/serenity/Meta/Lagom/../../AK/Iterator.h 32
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/Value.h 10
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/VM.h 15
/src/serenity/Meta/Lagom/../../AK/StackInfo.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/CellAllocator.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/HeapBlock.h 10
/src/serenity/Meta/Lagom/../../AK/Traits.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/Cell.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/Handle.h 8
/src/serenity/Meta/Lagom/../../AK/Format.h 16
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 18
/src/serenity/Meta/Lagom/../../AK/StringView.h 15
/src/serenity/AK/StringView.cpp 4
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 12
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 3
/src/serenity/AK/StringBuilder.cpp 10
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 2
/src/serenity/Meta/Lagom/../../AK/Array.h 9
/src/serenity/Userland/Libraries/LibJS/Heap/BlockAllocator.cpp 2
/src/serenity/Meta/Lagom/../../AK/Time.h 1
/src/serenity/Userland/Libraries/LibJS/Heap/HeapBlock.cpp 2
/src/serenity/AK/Random.cpp 1
/src/serenity/Meta/Lagom/../../AK/Random.h 2
/src/serenity/Userland/Libraries/LibJS/Runtime/PrimitiveString.cpp 3
/src/serenity/Userland/Libraries/LibJS/Runtime/Utf16String.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/Utf16String.h 1
/src/serenity/Userland/Libraries/LibJS/Runtime/Symbol.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Interpreter.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/DeferGC.h 2
/src/serenity/Userland/Libraries/LibJS/Interpreter.cpp 3
/src/serenity/Meta/Lagom/../../AK/Weakable.h 9
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/ExecutionContext.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Heap/MarkedVector.h 3
/src/serenity/Userland/Libraries/LibJS/Heap/MarkedVector.cpp 2
/src/serenity/Userland/Libraries/LibJS/Runtime/Realm.cpp 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/Realm.h 3
/src/serenity/Userland/Libraries/LibJS/Runtime/GlobalObject.cpp 3
/src/serenity/Userland/Libraries/LibJS/Runtime/Object.cpp 11
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/IndexedProperties.h 5
/src/serenity/Userland/Libraries/LibJS/Runtime/Shape.cpp 12
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/StringOrSymbol.h 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/PropertyAttributes.h 3
/src/serenity/Userland/Libraries/LibJS/Console.cpp 1
/src/serenity/Meta/Lagom/../../AK/WeakPtr.h 15
/src/serenity/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.cpp 3
/src/serenity/Userland/Libraries/LibJS/Runtime/Environment.cpp 1
/src/serenity/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.cpp 1
/src/serenity/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp 1
/src/serenity/Userland/Libraries/LibJS/Heap/Handle.cpp 1
/src/serenity/Userland/Libraries/LibJS/Script.cpp 2
/src/serenity/Userland/Libraries/LibJS/Lexer.cpp 26
/src/serenity/Userland/Libraries/LibJS/Token.h 8
/src/serenity/Userland/Libraries/LibJS/Lexer.h 2
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 4
/src/serenity/AK/Utf8View.cpp 3
/src/serenity/Userland/Libraries/LibJS/Parser.cpp 102
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Lexer.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Token.h 11
/src/serenity/Userland/Libraries/LibUnicode/CharacterTypes.cpp 4
/src/serenity/Meta/Lagom/../../AK/Optional.h 2
/src/serenity/AK/GenericLexer.cpp 5
/src/serenity/Meta/Lagom/../../AK/Result.h 11
/src/serenity/AK/Utf16View.cpp 3
/src/serenity/Meta/Lagom/../../AK/UnicodeUtils.h 1
/src/serenity/Userland/Libraries/LibJS/Parser.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/AST.h 127
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtrVector.h 6
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Userland/Libraries/LibJS/Token.cpp 10
/src/serenity/AK/String.cpp 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Parser.h 7
/src/serenity/Meta/Lagom/../../AK/AnyOf.h 5
/src/serenity/Meta/Lagom/../../AK/Find.h 3
//usr/local/bin/../include/c++/v1/initializer_list 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/SourceRange.h 1
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Userland/Libraries/LibJS/AST.cpp 21
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/Completion.h 18
/src/serenity/Meta/Lagom/../../AK/AllOf.h 4
/src/serenity/Meta/Lagom/../../AK/Demangle.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Script.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/ErrorTypes.h 1
/src/serenity/Userland/Libraries/LibJS/Runtime/Error.cpp 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/GlobalObject.h 12
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/Object.h 6
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Userland/Libraries/LibJS/Runtime/IndexedProperties.cpp 4
/src/serenity/Meta/Lagom/../../AK/ReverseIterator.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/Shape.h 6
/src/serenity/Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/PrivateEnvironment.h 2
/src/serenity/Userland/Libraries/LibJS/Runtime/FunctionObject.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/FunctionObject.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Forward.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/PropertyDescriptor.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/ObjectEnvironment.h 1
/src/serenity/Userland/Libraries/LibJS/Runtime/FinalizationRegistry.cpp 1
/src/serenity/Meta/Lagom/../../AK/SinglyLinkedList.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibJS/Runtime/JobCallback.h 1

Fuzzer: FuzzQOILoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
13 297 Gfx::QOIImageDecoderPlugin::frame(unsigned long) call site __assert_fail
9 241 void Gfx::Bitmap::set_pixel<(Gfx::StorageFormat)2>(int, int, Gfx::Color) call site __assert_fail
9 285 Gfx::QOIImageDecoderPlugin::frame(unsigned long) call site __assert_fail
4 65 Gfx::decode_qoi_header(AK::InputMemoryStream&) call site
4 125 Gfx::Bitmap::try_create(Gfx::BitmapFormat, Gfx::Size const&, int) call site
3 139 Gfx::Bitmap::allocate_palette_from_format(Gfx::BitmapFormat, AK::Vector const&) call site __assert_fail
3 232 Gfx::Bitmap::physical_width() const call site __assert_fail
2 1 LLVMFuzzerTestOneInput call site
2 42 bool AK::Checked ::addition_would_overflow (unsigned long, unsigned long) call site __assert_fail
2 90 Gfx::QOIImageDecoderPlugin::decode_header_and_update_context(AK::InputMemoryStream&) call site
2 96 Gfx::QOIImageDecoderPlugin::decode_image_and_update_context(AK::InputMemoryStream&) call site
2 108 Gfx::Bitmap::minimum_pitch(unsigned long, Gfx::BitmapFormat) call site __assert_fail

Runtime coverage analysis

Covered functions
329
Functions that are reachable but not covered
31
Reachable functions
158
Percentage of reachable functions covered
80.38%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzQOILoader.cpp 1
/src/serenity/Userland/Libraries/LibGfx/QOILoader.cpp 13
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 7
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/QOILoader.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 10
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 9
/ 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 11
/src/serenity/Meta/Lagom/../../AK/Error.h 24
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 7
/src/serenity/Meta/Lagom/../../AK/Stream.h 6
/src/serenity/Meta/Lagom/../../AK/StringView.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 9
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 7

Fuzzer: FuzzGIFLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 334 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 398 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 373 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
17 298 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
10 127 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 316 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
9 708 void Gfx::Bitmap::set_pixel<(Gfx::StorageFormat)2>(int, int, Gfx::Color) call site __assert_fail
8 174 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity(unsigned long) call site malloc_good_size
8 425 AK::Formatter ::format(AK::FormatBuilder&, unsigned short) call site __assert_fail
7 254 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
6 219 AK::Checked ::operator*=(unsigned long) call site __assert_fail
6 541 bool AK::Variant ::has () const call site

Runtime coverage analysis

Covered functions
500
Functions that are reachable but not covered
56
Reachable functions
306
Percentage of reachable functions covered
81.7%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzGIFLoader.cpp 1
/src/serenity/Userland/Libraries/LibGfx/GIFLoader.cpp 20
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 8
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 5
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 32
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 9
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 8
/ 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 9
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 16
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/src/serenity/Meta/Lagom/../../AK/Error.h 17
/src/serenity/Meta/Lagom/../../AK/Span.h 7
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 3
/src/serenity/Meta/Lagom/../../AK/Stream.h 6
/src/serenity/Meta/Lagom/../../AK/Array.h 12
/src/serenity/Meta/Lagom/../../AK/StringView.h 8
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/IntegralMath.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Rect.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Point.h 2
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2

Fuzzer: FuzzGzipDecompression

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 265 Compress::GzipDecompressor::read(AK::Span ) call site
5 295 AK::Detail::ByteBuffer<32ul>::try_resize(unsigned long) call site
3 144 Compress::DeflateDecompressor::decode_codes(Compress::CanonicalCode&, AK::Optional &) call site
3 321 AK::DuplexMemoryStream::write(AK::Span ) call site
2 7 Compress::GzipDecompressor::decompress_all(AK::Span ) call site
2 83 Compress::CanonicalCode::from_bytes(AK::Span ) call site __assert_fail
2 157 Compress::DeflateDecompressor::read(AK::Span ) call site
2 202 AK::CircularDuplexStream<32768ul>::reserve_contiguous_space(unsigned long) call site
2 208 Compress::DeflateDecompressor::read(AK::Span ) call site __assert_fail
2 230 Compress::GzipDecompressor::read(AK::Span ) call site
2 235 Compress::DeflateDecompressor::~DeflateDecompressor() call site
2 239 AK::CircularQueue ::clear() call site

Runtime coverage analysis

Covered functions
286
Functions that are reachable but not covered
34
Reachable functions
167
Percentage of reachable functions covered
79.64%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzGzipDecompression.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/Userland/Libraries/LibCompress/Gzip.cpp 9
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 9
/src/serenity/Meta/Lagom/../../AK/Stream.h 15
/src/serenity/Meta/Lagom/../../AK/Vector.h 20
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Gzip.h 3
/ 2
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 15
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/Endian.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/Array.h 9
/src/serenity/Meta/Lagom/../../AK/Error.h 9
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 2
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 7
/src/serenity/Userland/Libraries/LibCrypto/Checksum/CRC32.cpp 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Checksum/ChecksumFunction.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Checksum/CRC32.h 1
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 17
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1

Fuzzer: FuzzDeflateCompression

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 247 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site __assert_fail
5 264 AK::Detail::ByteBuffer<32ul>::try_resize(unsigned long) call site
3 6 Compress::DeflateCompressor::compress_all(AK::Span , Compress::DeflateCompressor::CompressionLevel) call site
3 26 AK::OutputBitStream::write_bits(unsigned int, unsigned long) call site
3 287 AK::ErrorOr , AK::Error>::release_value() call site
2 3 Compress::DeflateCompressor::compress_all(AK::Span , Compress::DeflateCompressor::CompressionLevel) call site
2 38 AK::OutputBitStream::align_to_byte_boundary() call site
2 113 void Compress::DeflateCompressor::generate_huffman_lengths<288ul>(AK::Array &, AK::Array const&, unsigned long, unsigned short) call site
2 190 Compress::CanonicalCode::from_bytes(AK::Span ) call site __assert_fail
2 199 Compress::DeflateCompressor::flush() call site
2 256 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity_slowpath(unsigned long) call site
2 259 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity_slowpath(unsigned long) call site

Runtime coverage analysis

Covered functions
284
Functions that are reachable but not covered
28
Reachable functions
155
Percentage of reachable functions covered
81.94%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzDeflateCompression.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 30
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 6
/src/serenity/Meta/Lagom/../../AK/Stream.h 12
/src/serenity/Meta/Lagom/../../AK/Vector.h 8
/src/serenity/Meta/Lagom/../../AK/BitStream.h 9
/src/serenity/Meta/Lagom/../../AK/Array.h 27
/ 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 6
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/Endian.h 1
/src/serenity/Meta/Lagom/../../AK/BinaryHeap.h 8
/src/serenity/Meta/Lagom/../../AK/Error.h 9
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 17
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3

Fuzzer: FuzzHebrewDecoder

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
131 306 AK::Detail::ByteBuffer<256ul>::clear() call site __assert_fail
93 95 TextCodec::get_standardized_encoding(AK::StringView) call site __assert_fail
36 254 AK::StringBuilder::try_append(char) call site __assert_fail
18 200 AK::StringBuilder::StringBuilder(unsigned long) call site
17 1 LLVMFuzzerTestOneInput call site __assert_fail
10 448 TextCodec::decoder_for(AK::String const&) call site __assert_fail
7 296 AK::StringBuilder::data() const call site __assert_fail
5 242 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
4 27 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 459 LLVMFuzzerTestOneInput call site __assert_fail
3 20 AK::StringImpl::create(char const*, AK::ShouldChomp) call site
3 32 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail

Runtime coverage analysis

Covered functions
324
Functions that are reachable but not covered
99
Reachable functions
181
Percentage of reachable functions covered
45.3%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzHebrewDecoder.cpp 1
/src/serenity/Meta/Lagom/../../AK/String.h 2
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 2
/ 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Userland/Libraries/LibTextCodec/Decoder.cpp 2
/src/serenity/AK/StringView.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 40
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 5

Fuzzer: FuzzZlibDecompression

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 11 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site
5 187 Compress::DeflateDecompressor::decode_distance(unsigned int) call site __assert_fail
5 239 AK::Detail::ByteBuffer<32ul>::try_resize(unsigned long) call site
4 169 AK::CircularDuplexStream<32768ul>::read(AK::Span ) call site __assert_fail
3 150 Compress::DeflateDecompressor::decode_codes(Compress::CanonicalCode&, AK::Optional &) call site
3 265 AK::DuplexMemoryStream::write(AK::Span ) call site
2 18 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site
2 89 Compress::CanonicalCode::from_bytes(AK::Span ) call site __assert_fail
2 163 Compress::DeflateDecompressor::read(AK::Span ) call site
2 208 AK::CircularDuplexStream<32768ul>::reserve_contiguous_space(unsigned long) call site
2 214 Compress::DeflateDecompressor::read(AK::Span ) call site __assert_fail
2 224 AK::Detail::ByteBuffer<32ul>::trim(unsigned long, bool) call site

Runtime coverage analysis

Covered functions
269
Functions that are reachable but not covered
37
Reachable functions
149
Percentage of reachable functions covered
75.17%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzZlibDecompression.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 5
/src/serenity/Userland/Libraries/LibCompress/Zlib.cpp 4
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 17
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 9
/src/serenity/Meta/Lagom/../../AK/Stream.h 11
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 6
/src/serenity/Meta/Lagom/../../AK/Vector.h 20
/ 2
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/Array.h 8
/src/serenity/Meta/Lagom/../../AK/Error.h 9
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 2
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 17
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1

Fuzzer: FuzzMP3Loader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
42 562 AK::StringBuilder::try_append(AK::StringView) call site
34 110 AK::Detail::IntrusiveList ::remove(Core::Object&) call site __assert_fail
27 521 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
21 150 AK::RefCountedBase::~RefCountedBase() call site __assert_fail
13 624 AK::FormatBuilder::put_string(AK::StringView, AK::FormatBuilder::Align, unsigned long, unsigned long, char) call site __assert_fail
10 237 AK::ErrorOr AK::HashTable , AK::Traits , false>::Entry, AK::HashMap , AK::Traits , false>::EntryTraits, false>::try_set , AK::Traits , false>::Entry>(AK::HashMap , AK::Traits , false>::Entry&&, AK::HashSetExistingEntryBehavior) call site
10 347 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
10 386 AK::StringView::substring_view(unsigned long) const call site
10 749 LLVMFuzzerTestOneInput call site __assert_fail
9 48 AK::NonnullOwnPtr AK::make &>(AK::Detail::ByteBuffer<32ul>&) call site __assert_fail
9 479 AK::vformat(AK::StringBuilder&, AK::StringView, AK::TypeErasedFormatParams&) call site __assert_fail
8 431 AK::StringBuilder::will_append(unsigned long) call site __assert_fail

Runtime coverage analysis

Covered functions
680
Functions that are reachable but not covered
121
Reachable functions
382
Percentage of reachable functions covered
68.32%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzMP3Loader.cpp 1
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 23
/ 9
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/Error.h 15
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 10
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/BitCast.h 5
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 13
/src/serenity/AK/StringView.cpp 2
/src/serenity/Userland/Libraries/LibAudio/MP3Loader.cpp 1
/src/serenity/Userland/Libraries/LibAudio/Loader.h 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 10
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/File.h 1
/src/serenity/Meta/Lagom/../../AK/String.h 14
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/src/serenity/AK/StringImpl.cpp 6
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 16
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 8
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 7
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 2
/src/serenity/Userland/Libraries/LibCore/File.cpp 3
/src/serenity/Userland/Libraries/LibCore/IODevice.cpp 4
/src/serenity/Userland/Libraries/LibCore/Object.cpp 5
/src/serenity/Meta/Lagom/../../AK/Weakable.h 3
/src/serenity/Meta/Lagom/../../AK/IntrusiveList.h 6
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 19
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/Function.h 17
/src/serenity/Meta/Lagom/../../AK/Atomic.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Object.h 1
/src/serenity/Userland/Libraries/LibCore/Event.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Event.h 3
/src/serenity/Meta/Lagom/../../AK/WeakPtr.h 6
/src/serenity/Userland/Libraries/LibCore/Property.cpp 1
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/Traits.h 1
/src/serenity/AK/String.cpp 2
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Property.h 1
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 1
/src/serenity/Meta/Lagom/../../AK/Stream.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/IODevice.h 4
/src/serenity/Meta/Lagom/../../AK/Format.h 15
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/Array.h 5
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 2
/src/serenity/AK/StringBuilder.cpp 7
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/AK/FlyString.cpp 3
/src/serenity/Meta/Lagom/../../AK/Singleton.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibAudio/LoaderError.h 3
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/FileStream.h 3
/src/serenity/Meta/Lagom/../../AK/BitStream.h 1
/src/serenity/Meta/Lagom/../../AK/Result.h 4
/src/serenity/Meta/Lagom/../../AK/FixedArray.h 2

Fuzzer: FuzzWasmParser

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
25 510 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 414 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 485 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
11 433 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
9 266 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
8 343 AK::StringBuilder::will_append(unsigned long) call site __assert_fail
8 536 AK::Formatter ::format(AK::FormatBuilder&, unsigned char) call site __assert_fail
7 469 AK::StringBuilder::try_append(AK::StringView) call site
5 105 AK::String AK::String::copy >(AK::Vector const&, AK::ShouldChomp) call site __assert_fail
5 132 Wasm::CustomSection::parse(AK::InputStream&) call site __assert_fail
5 199 AK::Vector , 0ul>::try_append(AK::Variant &&) call site
5 277 AK::StandardFormatter::parse(AK::TypeErasedFormatParams&, AK::FormatParser&) call site __assert_fail

Runtime coverage analysis

Covered functions
2190
Functions that are reachable but not covered
70
Reachable functions
439
Percentage of reachable functions covered
84.05%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzWasmParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 5
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 3
/src/serenity/Meta/Lagom/../../AK/Stream.h 4
/src/serenity/Userland/Libraries/LibWasm/Parser/Parser.cpp 33
/src/serenity/Meta/Lagom/../../AK/ScopeLogger.h 2
/src/serenity/Meta/Lagom/../../AK/Result.h 118
/src/serenity/Meta/Lagom/../../AK/Array.h 6
/src/serenity/Meta/Lagom/../../AK/Vector.h 50
/src/serenity/Meta/Lagom/../../AK/LEB128.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibWasm/Types.h 39
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2
/ 3
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/Checked.h 17
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/String.h 7
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 4
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 4
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 21
/src/serenity/Meta/Lagom/../../AK/Variant.h 18
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 8
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 6
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/DistinctNumeric.h 2

Fuzzer: FuzzASN1

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
162 959 TLS::Certificate::parse_asn1(AK::Span , bool) call site __assert_fail
49 874 Crypto::PK::RSA::parse_rsa_key(AK::Span )::$_0::operator()() const::{lambda()#1}::operator()() const call site memcmp
45 657 AK::StringBuilder::try_append(AK::StringView) call site
28 926 Crypto::PK::RSA::parse_rsa_key(AK::Span ) call site __assert_fail
27 616 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
9 256 AK::Result Crypto::ASN1::Decoder::read_value (Crypto::ASN1::Class, Crypto::ASN1::Kind, unsigned long) call site __assert_fail
9 463 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 713 AK::FormatBuilder::put_string(AK::StringView, AK::FormatBuilder::Align, unsigned long, unsigned long, char) call site
8 16 AK::String::String() call site
8 538 AK::StringBuilder::will_append(unsigned long) call site __assert_fail
8 607 AK::Formatter ::format(AK::FormatBuilder&, AK::StringView) call site __assert_fail
7 559 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail

Runtime coverage analysis

Covered functions
594
Functions that are reachable but not covered
104
Reachable functions
383
Percentage of reachable functions covered
72.85%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzASN1.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 6
/src/serenity/Userland/Libraries/LibTLS/Certificate.cpp 5
/src/serenity/Userland/Libraries/LibTLS/Certificate.h 3
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 28
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/PK/RSA.h 11
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/BigInt/UnsignedBigInteger.h 10
/src/serenity/Meta/Lagom/../../AK/Vector.h 37
/src/serenity/Meta/Lagom/../../AK/Error.h 7
/ 4
/src/serenity/Meta/Lagom/../../AK/String.h 9
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/DateTime.h 1
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/BitCast.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/ASN1/DER.h 20
/src/serenity/Userland/Libraries/LibCrypto/ASN1/DER.cpp 16
/src/serenity/Meta/Lagom/../../AK/Result.h 51
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 3
/src/serenity/Userland/Libraries/LibCrypto/BigInt/UnsignedBigInteger.cpp 5
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 4
/src/serenity/AK/Utf8View.cpp 2
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 3
/src/serenity/Meta/Lagom/../../AK/Array.h 7
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 4
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/Format.h 16
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/AK/StringView.cpp 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 2
/src/serenity/AK/StringBuilder.cpp 7
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Userland/Libraries/LibCrypto/ASN1/ASN1.cpp 3
/src/serenity/AK/GenericLexer.cpp 1
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Userland/Libraries/LibCore/DateTime.cpp 2
/src/serenity/Userland/Libraries/LibCrypto/PK/RSA.cpp 3
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2
/src/serenity/Meta/Lagom/../../AK/BitmapView.h 2
/src/serenity/Meta/Lagom/../../AK/IPv4Address.h 3
/src/serenity/Meta/Lagom/../../AK/Endian.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibTLS/Certificate.h 2

Fuzzer: FuzzGemini

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
383 616 AK::StringView::operator==(char const*) const call site __assert_fail
232 1000 AK::StringBuilder::length() const call site __assert_fail
106 487 AK::StringBuilder::try_append(AK::StringView) call site __assert_fail
64 420 AK::StringBuilder::append(char) call site __assert_fail
49 50 AK::RefCounted ::unref() const call site sched_yield
48 115 AK::StringView::lines(bool) const call site __assert_fail
31 314 AK::URL::complete_url(AK::String const&) const call site __assert_fail
19 1237 AK::URL::serialize(AK::URL::ExcludeFragment) const call site __assert_fail
14 1261 AK::URL::serialize(AK::URL::ExcludeFragment) const call site
12 175 AK::Vector ::try_append(AK::StringView&&) call site __assert_fail
12 596 AK::String::view() const call site __assert_fail
10 374 AK::Detail::ByteBuffer<256ul>::~ByteBuffer() call site __assert_fail

Runtime coverage analysis

Covered functions
312
Functions that are reachable but not covered
250
Reachable functions
387
Percentage of reachable functions covered
35.4%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/serenity/Meta/Lagom/Fuzzers/FuzzGemini.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/ 5
/src/serenity/Meta/Lagom/../../AK/URL.h 16
/src/serenity/Meta/Lagom/../../AK/String.h 17
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 9
/src/serenity/Meta/Lagom/../../AK/Vector.h 34
/src/serenity/Userland/Libraries/LibGemini/Document.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGemini/Document.h 4
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 5
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 7
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/AK/FlyString.cpp 3
/src/serenity/Meta/Lagom/../../AK/Singleton.h 4
/src/serenity/Meta/Lagom/../../AK/Atomic.h 3
/src/serenity/Meta/Lagom/../../AK/HashTable.h 17
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 6
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/AK/StringView.cpp 14
/src/serenity/Meta/Lagom/../../AK/StringView.h 16
/src/serenity/AK/StringUtils.cpp 12
/src/serenity/Meta/Lagom/../../AK/MemMem.h 5
/src/serenity/Meta/Lagom/../../AK/Span.h 5
/src/serenity/Meta/Lagom/../../AK/Array.h 7
/src/serenity/Meta/Lagom/../../AK/Iterator.h 11
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 9
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 9
/src/serenity/Userland/Libraries/LibGemini/Line.cpp 1
/src/serenity/AK/String.cpp 4
/src/serenity/AK/URL.cpp 10
/src/serenity/AK/URLParser.cpp 13
/src/serenity/AK/StringBuilder.cpp 14
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 7
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 10
/src/serenity/AK/Utf8View.cpp 6
/src/serenity/Meta/Lagom/../../AK/UnicodeUtils.h 1
/src/serenity/Meta/Lagom/../../AK/SourceLocation.h 2
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1

Fuzzer: FuzzPBMLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 379 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 443 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 342 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 418 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
12 584 Gfx::Bitmap::scanline_u8(int) call site __assert_fail
10 231 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 361 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
8 470 AK::Formatter ::format(AK::FormatBuilder&, unsigned long) call site __assert_fail
7 305 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
5 110 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
5 140 AK::StringBuilder::to_string() const call site __assert_fail
5 243 AK::StandardFormatter::parse(AK::TypeErasedFormatParams&, AK::FormatParser&) call site __assert_fail

Runtime coverage analysis

Covered functions
401
Functions that are reachable but not covered
47
Reachable functions
265
Percentage of reachable functions covered
82.26%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPBMLoader.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/PortableImageMapLoader.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 6
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 9
/ 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 6
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/src/serenity/Meta/Lagom/../../AK/Error.h 13
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/PortableImageLoaderCommon.h 8
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Streamer.h 4
/src/serenity/Meta/Lagom/../../AK/Array.h 6
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/AK/StringBuilder.cpp 7
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/String.h 5
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 4
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/Format.h 14
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Userland/Libraries/LibGfx/PBMLoader.cpp 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 11
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 3
/src/serenity/Userland/Libraries/LibGfx/PortableImageLoaderCommon.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3

Fuzzer: FuzzSHA256

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
1 2 Crypto::Hash::SHA256::hash(unsigned char const*, unsigned long) call site

Runtime coverage analysis

Covered functions
15
Functions that are reachable but not covered
1
Reachable functions
12
Percentage of reachable functions covered
91.67%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzSHA256.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/SHA2.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/HashFunction.h 1
/src/serenity/Userland/Libraries/LibCrypto/Hash/SHA2.cpp 8

Fuzzer: FuzzCyrillicDecoder

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
131 306 AK::Detail::ByteBuffer<256ul>::clear() call site __assert_fail
97 91 TextCodec::get_standardized_encoding(AK::StringView) call site __assert_fail
36 254 AK::StringBuilder::try_append(char) call site __assert_fail
18 200 AK::StringBuilder::StringBuilder(unsigned long) call site
17 1 LLVMFuzzerTestOneInput call site __assert_fail
8 450 TextCodec::decoder_for(AK::String const&) call site __assert_fail
7 296 AK::StringBuilder::data() const call site __assert_fail
5 242 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
4 27 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 459 LLVMFuzzerTestOneInput call site __assert_fail
3 20 AK::StringImpl::create(char const*, AK::ShouldChomp) call site
3 32 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail

Runtime coverage analysis

Covered functions
292
Functions that are reachable but not covered
101
Reachable functions
181
Percentage of reachable functions covered
44.2%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzCyrillicDecoder.cpp 1
/src/serenity/Meta/Lagom/../../AK/String.h 2
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 2
/ 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Userland/Libraries/LibTextCodec/Decoder.cpp 2
/src/serenity/AK/StringView.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 40
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 5

Fuzzer: FuzzJPGLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 355 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 419 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 318 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 394 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
12 776 Gfx::Bitmap::scanline_u8(int) call site __assert_fail
10 150 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 337 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
8 446 AK::Formatter ::format(AK::FormatBuilder&, unsigned short) call site __assert_fail
7 197 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity(unsigned long) call site malloc_good_size
7 274 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
6 239 AK::Checked ::operator*=(unsigned long) call site __assert_fail
5 162 AK::StandardFormatter::parse(AK::TypeErasedFormatParams&, AK::FormatParser&) call site __assert_fail

Runtime coverage analysis

Covered functions
536
Functions that are reachable but not covered
68
Reachable functions
330
Percentage of reachable functions covered
79.39%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzJPGLoader.cpp 1
/src/serenity/Userland/Libraries/LibGfx/JPGLoader.cpp 36
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../AK/Vector.h 26
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 10
/src/serenity/Meta/Lagom/../../AK/HashMap.h 12
/src/serenity/Meta/Lagom/../../AK/HashTable.h 18
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 8
/ 7
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Error.h 17
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/Span.h 7
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 6
/src/serenity/Meta/Lagom/../../AK/Stream.h 7
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/Meta/Lagom/../../AK/Format.h 14
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 8
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 5
/src/serenity/Meta/Lagom/../../AK/Traits.h 2
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/Math.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 3

Fuzzer: FuzzSQLParser

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 537 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
11 481 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
10 355 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 455 AK::vformat(AK::StringBuilder&, AK::StringView, AK::TypeErasedFormatParams&) call site __assert_fail
8 472 AK::Formatter ::format(AK::FormatBuilder&, AK::StringView) call site __assert_fail
8 501 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site
8 523 AK::StringBuilder::try_append(AK::StringView) call site
8 575 AK::FormatBuilder::put_string(AK::StringView, AK::FormatBuilder::Align, unsigned long, unsigned long, char) call site
7 434 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
7 1308 SQL::AST::Parser::parse_alter_table_statement() call site
7 1350 SQL::AST::Parser::parse_drop_table_statement() call site
6 1144 SQL::AST::Parser::parse_conflict_resolution() call site

Runtime coverage analysis

Covered functions
1291
Functions that are reachable but not covered
82
Reachable functions
436
Percentage of reachable functions covered
81.19%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzSQLParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 14
/ 8
/src/serenity/Userland/Libraries/LibSQL/AST/Lexer.cpp 22
/src/serenity/Meta/Lagom/../../AK/HashMap.h 12
/src/serenity/Meta/Lagom/../../AK/HashTable.h 16
/src/serenity/Meta/Lagom/../../AK/String.h 16
/src/serenity/AK/StringImpl.cpp 6
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 22
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 7
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 3
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 8
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/Error.h 8
/src/serenity/Meta/Lagom/../../AK/Traits.h 1
/src/serenity/AK/String.cpp 2
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1
/src/serenity/Meta/Lagom/../../AK/BitCast.h 2
/src/serenity/AK/StringBuilder.cpp 8
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Userland/Libraries/LibSQL/AST/Parser.cpp 50
//usr/include/ctype.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 4
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Userland/Libraries/LibSQL/AST/Token.h 7
/src/serenity/Meta/Lagom/../../AK/Vector.h 30
/src/serenity/Userland/Libraries/LibSQL/AST/Token.cpp 2
/src/serenity/Meta/Lagom/../../AK/Format.h 12
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/Array.h 5
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Userland/Libraries/LibSQL/AST/Parser.h 16
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibSQL/AST/Parser.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibSQL/AST/Token.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtrVector.h 9
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibSQL/AST/AST.h 54

Fuzzer: FuzzLatin2Decoder

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
131 306 AK::Detail::ByteBuffer<256ul>::clear() call site __assert_fail
115 73 TextCodec::get_standardized_encoding(AK::StringView) call site __assert_fail
36 254 AK::StringBuilder::try_append(char) call site __assert_fail
18 200 AK::StringBuilder::StringBuilder(unsigned long) call site
17 1 LLVMFuzzerTestOneInput call site __assert_fail
12 446 TextCodec::decoder_for(AK::String const&) call site __assert_fail
7 296 AK::StringBuilder::data() const call site __assert_fail
5 242 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
4 27 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 459 LLVMFuzzerTestOneInput call site __assert_fail
3 20 AK::StringImpl::create(char const*, AK::ShouldChomp) call site
3 32 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail

Runtime coverage analysis

Covered functions
178
Functions that are reachable but not covered
115
Reachable functions
181
Percentage of reachable functions covered
36.46%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/serenity/Meta/Lagom/Fuzzers/FuzzLatin2Decoder.cpp 1
/src/serenity/Meta/Lagom/../../AK/String.h 2
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 2
/ 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Userland/Libraries/LibTextCodec/Decoder.cpp 2
/src/serenity/AK/StringView.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 40
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 5

Fuzzer: FuzzBMPLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
7 188 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
7 590 Gfx::BMPImageDecoderPlugin::frame(unsigned long) call site __assert_fail
6 144 AK::Checked ::operator*=(unsigned long) call site __assert_fail
6 419 bool AK::Variant ::has () const call site
5 5 AK::NonnullOwnPtr AK::make () call site
5 155 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
5 456 AK::NonnullRefPtr & AK::Variant , AK::Error>::get >() call site __assert_fail
4 26 Gfx::Bitmap::size_in_bytes() const call site
4 85 AK::Error::from_errno(int) call site
4 183 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
4 412 Gfx::Bitmap::allocate_backing_store(Gfx::BitmapFormat, Gfx::Size const&, int) call site
3 81 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity(unsigned long) call site malloc_good_size

Runtime coverage analysis

Covered functions
603
Functions that are reachable but not covered
41
Reachable functions
277
Percentage of reachable functions covered
85.2%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzBMPLoader.cpp 1
/src/serenity/Userland/Libraries/LibGfx/BMPLoader.cpp 39
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 7
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../AK/Vector.h 17
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 10
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 7
/ 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 10
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/Error.h 17
/src/serenity/Meta/Lagom/../../AK/Format.h 12
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/Meta/Lagom/../../AK/Array.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/Format.cpp 9
/src/serenity/AK/StringBuilder.cpp 5
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 24
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 5
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/BuiltinWrappers.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 5
/src/serenity/Meta/Lagom/../../AK/Function.h 22
/src/serenity/Meta/Lagom/../../AK/Atomic.h 1
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 3

Fuzzer: FuzzQuotedPrintableParser

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 81 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
5 105 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site
3 46 AK::parse_ascii_digit(unsigned int) call site __assert_fail
3 50 IMAP::decode_quoted_printable(AK::StringView) call site __assert_fail
3 117 bool AK::Variant , AK::Error>::has () const call site
2 16 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity_slowpath(unsigned long) call site
2 34 IMAP::decode_quoted_printable(AK::StringView) call site __assert_fail
2 39 IMAP::decode_quoted_printable(AK::StringView) call site __assert_fail
2 54 IMAP::decode_quoted_printable(AK::StringView) call site __assert_fail
1 11 IMAP::decode_quoted_printable(AK::StringView) call site
1 29 AK::GenericLexer::consume() call site
1 75 AK::StringBuilder::will_append(unsigned long) call site

Runtime coverage analysis

Covered functions
99
Functions that are reachable but not covered
10
Reachable functions
72
Percentage of reachable functions covered
86.11%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzQuotedPrintableParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 13
/ 1
/src/serenity/Userland/Libraries/LibIMAP/QuotedPrintable.cpp 2
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 3
/src/serenity/AK/StringBuilder.cpp 5
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 19
/src/serenity/Meta/Lagom/../../AK/Error.h 8
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 1
/src/serenity/Meta/Lagom/../../AK/StringView.h 2
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 6
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/BitCast.h 2

Fuzzer: FuzzUTF16BEDecoder

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
121 316 AK::StringView::bytes() const call site __assert_fail
73 108 TextCodec::get_standardized_encoding(AK::StringView) call site __assert_fail
36 254 AK::StringBuilder::try_append(char) call site __assert_fail
18 200 AK::StringBuilder::StringBuilder(unsigned long) call site
16 442 TextCodec::decoder_for(AK::String const&) call site __assert_fail
9 306 AK::Detail::ByteBuffer<256ul>::clear() call site __assert_fail
7 296 AK::StringBuilder::data() const call site __assert_fail
5 183 AK::StringView::substring_view(unsigned long) const call site
5 242 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
4 1 LLVMFuzzerTestOneInput call site __assert_fail
4 27 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 459 LLVMFuzzerTestOneInput call site __assert_fail

Runtime coverage analysis

Covered functions
405
Functions that are reachable but not covered
77
Reachable functions
181
Percentage of reachable functions covered
57.46%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzUTF16BEDecoder.cpp 1
/src/serenity/Meta/Lagom/../../AK/String.h 2
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 2
/ 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Userland/Libraries/LibTextCodec/Decoder.cpp 2
/src/serenity/AK/StringView.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 40
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 5

Fuzzer: FuzzLatin1Decoder

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
131 306 AK::Detail::ByteBuffer<256ul>::clear() call site __assert_fail
96 92 TextCodec::get_standardized_encoding(AK::StringView) call site __assert_fail
36 254 AK::StringBuilder::try_append(char) call site __assert_fail
20 438 TextCodec::decoder_for(AK::String const&) call site __assert_fail
18 200 AK::StringBuilder::StringBuilder(unsigned long) call site
17 1 LLVMFuzzerTestOneInput call site __assert_fail
7 296 AK::StringBuilder::data() const call site __assert_fail
5 242 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
4 27 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 459 LLVMFuzzerTestOneInput call site __assert_fail
3 20 AK::StringImpl::create(char const*, AK::ShouldChomp) call site
3 32 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail

Runtime coverage analysis

Covered functions
307
Functions that are reachable but not covered
100
Reachable functions
181
Percentage of reachable functions covered
44.75%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzLatin1Decoder.cpp 1
/src/serenity/Meta/Lagom/../../AK/String.h 2
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 2
/ 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Userland/Libraries/LibTextCodec/Decoder.cpp 2
/src/serenity/AK/StringView.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 40
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 5

Fuzzer: FuzzRegexECMA262

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 266 AK::Vector ::try_append(regex::Detail::Block&&) call site _ZZN5regex5RegexINS_13ECMA262ParserEE18split_basic_blocksERKNS_8ByteCodeEENKUlTyRKNS_6OpCodeEE_clINS_19OpCode_JumpNonEmptyEEEDaS8_
13 284 regex::Regex ::split_basic_blocks(regex::ByteCode const&) call site __assert_fail
12 9 LLVMFuzzerTestOneInput call site __assert_fail
10 336 regex::Parser::~Parser() call site
6 256 AK::OwnPtr ::operator->() call site _ZZN5regex5RegexINS_13ECMA262ParserEE18split_basic_blocksERKNS_8ByteCodeEENKUlTyRKNS_6OpCodeEE_clINS_11OpCode_JumpEEEDaS8_
5 71 regex::Regex ::Regex(AK::String, regex::RegexOptions ) call site
5 190 AK::HashMap , false>::keys() const call site __assert_fail
5 216 AK::Vector , 0ul>::remove(unsigned long, unsigned long) call site __assert_fail
5 327 regex::Regex ::run_optimization_passes() call site
4 25 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 61 AK::OwnPtr ::~OwnPtr() call site
4 305 void AK::dual_pivot_quick_sort , regex::Regex ::split_basic_blocks(regex::ByteCode const&)::{lambda(auto:1&, auto:2&)#1}>(AK::Vector &, int, int, regex::Regex ::split_basic_blocks(regex::ByteCode const&)::{lambda(auto:1&, auto:2&)#1}) call site

Runtime coverage analysis

Covered functions
1102
Functions that are reachable but not covered
28
Reachable functions
190
Percentage of reachable functions covered
85.26%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzRegexECMA262.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 13
/ 1
/src/serenity/Meta/Lagom/../../AK/String.h 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 4
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexOptions.h 1
/src/serenity/Userland/Libraries/LibRegex/RegexMatcher.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexParser.h 9
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.h 4
/src/serenity/Meta/Lagom/../../AK/DisjointChunks.h 9
/src/serenity/Meta/Lagom/../../AK/Vector.h 38
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.cpp 2
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 4
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptions.h 5
/src/serenity/AK/StringView.cpp 1
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.cpp 8
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 4
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 11
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Userland/Libraries/LibRegex/RegexParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptimizer.cpp 7
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Userland/Libraries/LibRegex/RegexMatch.h 2
/src/serenity/Meta/Lagom/../../AK/QuickSort.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexMatcher.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexByteCode.h 1

Fuzzer: FuzzFlacLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
34 110 AK::Detail::IntrusiveList ::remove(Core::Object&) call site __assert_fail
21 150 AK::RefCountedBase::~RefCountedBase() call site __assert_fail
10 237 AK::ErrorOr AK::HashTable , AK::Traits , false>::Entry, AK::HashMap , AK::Traits , false>::EntryTraits, false>::try_set , AK::Traits , false>::Entry>(AK::HashMap , AK::Traits , false>::Entry&&, AK::HashSetExistingEntryBehavior) call site
10 469 LLVMFuzzerTestOneInput call site __assert_fail
8 48 AK::NonnullOwnPtr AK::make &>(AK::Detail::ByteBuffer<32ul>&) call site __assert_fail
6 436 AK::ErrorOr >, AK::Error> Core::Stream::BufferedHelper ::create_buffered (AK::NonnullOwnPtr , unsigned long) call site
5 4 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site __assert_fail
5 22 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site
5 85 AK::StringImpl::operator delete(void*) call site
5 197 AK::NonnullOwnPtr AK::make , AK::Function >(AK::String const&, AK::Function &&, AK::Function &&) call site
5 278 Core::Object::Object(Core::Object*) call site
5 340 AK::FlyString::FlyString(AK::String const&) call site __assert_fail

Runtime coverage analysis

Covered functions
831
Functions that are reachable but not covered
83
Reachable functions
305
Percentage of reachable functions covered
72.79%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzFlacLoader.cpp 1
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 16
/ 9
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/Error.h 25
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 8
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/BitCast.h 5
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 16
/src/serenity/AK/StringView.cpp 1
/src/serenity/Userland/Libraries/LibAudio/FlacLoader.cpp 1
/src/serenity/Userland/Libraries/LibAudio/Loader.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/File.h 1
/src/serenity/Meta/Lagom/../../AK/String.h 10
/src/serenity/Meta/Lagom/../../AK/StringView.h 3
/src/serenity/AK/StringImpl.cpp 6
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 16
/src/serenity/Meta/Lagom/../../AK/Checked.h 8
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 8
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 7
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 2
/src/serenity/Userland/Libraries/LibCore/File.cpp 3
/src/serenity/Userland/Libraries/LibCore/IODevice.cpp 3
/src/serenity/Userland/Libraries/LibCore/Object.cpp 5
/src/serenity/Meta/Lagom/../../AK/Weakable.h 3
/src/serenity/Meta/Lagom/../../AK/IntrusiveList.h 6
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 19
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 7
/src/serenity/Meta/Lagom/../../AK/Function.h 17
/src/serenity/Meta/Lagom/../../AK/Atomic.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Object.h 1
/src/serenity/Userland/Libraries/LibCore/Event.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Event.h 3
/src/serenity/Meta/Lagom/../../AK/WeakPtr.h 6
/src/serenity/Userland/Libraries/LibCore/Property.cpp 1
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/Traits.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Property.h 1
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 16
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/IODevice.h 4
/src/serenity/AK/FlyString.cpp 3
/src/serenity/Meta/Lagom/../../AK/Singleton.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibAudio/LoaderError.h 3
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Userland/Libraries/LibCore/Stream.cpp 5
/src/serenity/Userland/Libraries/LibCore/Stream.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Stream.h 8
/src/serenity/Userland/Libraries/LibCore/System.cpp 3
/src/serenity/Meta/Lagom/../../AK/Result.h 4
/src/serenity/Meta/Lagom/../../AK/FixedArray.h 2

Fuzzer: FuzzELF

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
100 93 AK::Checked ::operator*=(unsigned long) call site __assert_fail
60 317 AK::Vector ::clear() call site __assert_fail
51 10 ELF::Image::parse() call site malloc_good_size
19 256 ELF::validate_program_headers(Elf64_Ehdr const&, unsigned long, AK::Span , AK::StringBuilder*, bool) call site __assert_fail
16 67 bool AK::Checked ::addition_would_overflow (unsigned long, unsigned long) call site __assert_fail
7 85 bool AK::is_within_range (unsigned long) call site __assert_fail
6 226 ELF::validate_program_headers(Elf64_Ehdr const&, unsigned long, AK::Span , AK::StringBuilder*, bool) call site
5 233 ELF::validate_program_headers(Elf64_Ehdr const&, unsigned long, AK::Span , AK::StringBuilder*, bool) call site __assert_fail
4 214 ELF::validate_elf_header(Elf64_Ehdr const&, unsigned long, bool) call site __assert_fail
3 1 LLVMFuzzerTestOneInput call site
2 203 bool AK::operator> (AK::Checked const&, unsigned long) call site __assert_fail
2 244 ELF::validate_program_headers(Elf64_Ehdr const&, unsigned long, AK::Span , AK::StringBuilder*, bool) call site sysconf

Runtime coverage analysis

Covered functions
68
Functions that are reachable but not covered
137
Reachable functions
180
Percentage of reachable functions covered
23.89%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/serenity/Meta/Lagom/Fuzzers/FuzzELF.cpp 1
/src/serenity/Userland/Libraries/LibELF/Image.cpp 8
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/Meta/Lagom/../../AK/Vector.h 5
/ 5
/src/serenity/Userland/Libraries/LibELF/Validation.cpp 2
/src/serenity/Meta/Lagom/../../AK/Format.h 21
/src/serenity/Meta/Lagom/../../AK/Array.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/Format.cpp 9
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 7
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 2
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 8
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibELF/Image.h 2
/src/serenity/Meta/Lagom/../../AK/String.h 1
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 2
/src/serenity/AK/StringImpl.cpp 2
/src/serenity/AK/FlyString.cpp 3
/src/serenity/Meta/Lagom/../../AK/Singleton.h 4
/src/serenity/Meta/Lagom/../../AK/Atomic.h 3
/src/serenity/Meta/Lagom/../../AK/HashTable.h 17
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1

Fuzzer: FuzzSHA1

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
1 2 Crypto::Hash::SHA1::hash(unsigned char const*, unsigned long) call site

Runtime coverage analysis

Covered functions
12
Functions that are reachable but not covered
1
Reachable functions
10
Percentage of reachable functions covered
90.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzSHA1.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/SHA1.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/HashFunction.h 1
/src/serenity/Userland/Libraries/LibCrypto/Hash/SHA1.cpp 5
/src/serenity/Meta/Lagom/../../AK/Memory.h 1

Fuzzer: FuzzHttpRequest

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
7 279 kmalloc_array(AK::Checked , AK::Checked ) call site __assert_fail
5 197 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
4 43 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 263 HTTP::HttpRequest::from_raw_request(AK::Span ) call site
4 289 AK::Vector ::Vector(AK::Vector const&) call site
3 48 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
3 270 AK::Vector ::try_ensure_capacity(unsigned long) call site malloc_good_size
2 20 AK::StringImpl::the_empty_stringimpl() call site
2 36 AK::StringImpl::create(char const*, unsigned long, AK::ShouldChomp) call site __assert_fail
2 132 AK::URL::percent_decode(AK::StringView) call site
2 139 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity_slowpath(unsigned long) call site
2 228 AK::URL::percent_decode(AK::StringView) call site

Runtime coverage analysis

Covered functions
252
Functions that are reachable but not covered
12
Reachable functions
149
Percentage of reachable functions covered
91.95%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzHttpRequest.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 1
/src/serenity/Userland/Libraries/LibHTTP/HttpRequest.cpp 4
/src/serenity/Meta/Lagom/../../AK/Vector.h 22
/src/serenity/Meta/Lagom/../../AK/String.h 11
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibHTTP/HttpRequest.h 6
/ 1
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 17
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 3
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/URL.h 3
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 17
/src/serenity/AK/String.cpp 1
/src/serenity/Meta/Lagom/../../AK/StringView.h 5
/src/serenity/AK/StringView.cpp 2
/src/serenity/AK/URL.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/AK/StringBuilder.cpp 8
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 4
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/AK/Utf8View.cpp 5
/src/serenity/Meta/Lagom/../../AK/UnicodeUtils.h 1
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1

Fuzzer: FuzzURL

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
30 346 kmalloc_array(AK::Checked , AK::Checked ) call site __assert_fail
26 487 AK::Vector ::try_ensure_capacity(unsigned long) call site __assert_fail
24 316 AK::Detail::bitap_bitwise(void const*, unsigned long, void const*, unsigned long) call site __assert_fail
24 788 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
20 944 AK::URLParser::parse(AK::StringView, AK::URL const*, AK::Optional , AK::Optional ) call site __assert_fail
16 706 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
13 743 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_0::operator()() const call site
12 763 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
10 404 AK::StringUtils::replace(AK::StringView, AK::StringView, AK::StringView, bool) call site __assert_fail
10 515 AK::Vector ::remove(unsigned long) call site __assert_fail
10 833 AK::URL::append_percent_encoded_if_necessary(AK::StringBuilder&, unsigned int, AK::URL::PercentEncodeSet) call site
9 557 AK::URL::code_point_is_in_percent_encode_set(unsigned int, AK::URL::PercentEncodeSet) call site __assert_fail

Runtime coverage analysis

Covered functions
429
Functions that are reachable but not covered
76
Reachable functions
309
Percentage of reachable functions covered
75.4%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzURL.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/ 4
/src/serenity/AK/URL.cpp 8
/src/serenity/AK/URLParser.cpp 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 14
/src/serenity/Meta/Lagom/../../AK/URL.h 10
/src/serenity/Meta/Lagom/../../AK/String.h 16
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 8
/src/serenity/Meta/Lagom/../../AK/Vector.h 32
/src/serenity/AK/StringView.cpp 9
/src/serenity/AK/StringUtils.cpp 11
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 9
/src/serenity/Meta/Lagom/../../AK/Iterator.h 8
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/AK/StringBuilder.cpp 14
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 7
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 9
/src/serenity/AK/Utf8View.cpp 6
/src/serenity/Meta/Lagom/../../AK/UnicodeUtils.h 1
/src/serenity/Meta/Lagom/../../AK/SourceLocation.h 2
/src/serenity/AK/String.cpp 3
/src/serenity/Meta/Lagom/../../AK/MemMem.h 5
/src/serenity/Meta/Lagom/../../AK/Span.h 5
/src/serenity/Meta/Lagom/../../AK/Array.h 7
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1

Fuzzer: FuzzWAVLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
35 65 AK::Detail::IntrusiveList ::remove(Core::Object&) call site __assert_fail
25 110 AK::RefCountedBase::~RefCountedBase() call site __assert_fail
10 201 AK::ErrorOr AK::HashTable , AK::Traits , false>::Entry, AK::HashMap , AK::Traits , false>::EntryTraits, false>::try_set , AK::Traits , false>::Entry>(AK::HashMap , AK::Traits , false>::Entry&&, AK::HashSetExistingEntryBehavior) call site
8 3 AK::NonnullOwnPtr AK::make &>(AK::Span &) call site __assert_fail
8 101 AK::RefPtr >::leak_ref() call site __assert_fail
8 248 LLVMFuzzerTestOneInput call site __assert_fail
7 17 bool AK::Checked ::addition_would_overflow (unsigned int, int) call site __assert_fail
5 40 AK::StringImpl::operator delete(void*) call site
5 161 AK::NonnullOwnPtr AK::make , AK::Function >(AK::String const&, AK::Function &&, AK::Function &&) call site
5 242 Core::Object::Object(Core::Object*) call site __assert_fail
4 28 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 136 Core::Object::Object(Core::Object*) call site

Runtime coverage analysis

Covered functions
416
Functions that are reachable but not covered
73
Reachable functions
187
Percentage of reachable functions covered
60.96%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzWAVLoader.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 10
/src/serenity/Userland/Libraries/LibAudio/WavLoader.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibAudio/Loader.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/File.h 1
/src/serenity/Meta/Lagom/../../AK/String.h 9
/src/serenity/Meta/Lagom/../../AK/StringView.h 3
/src/serenity/AK/StringImpl.cpp 6
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 15
/ 3
/src/serenity/Meta/Lagom/../../AK/Checked.h 7
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 7
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 2
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 6
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 1
/src/serenity/Userland/Libraries/LibCore/File.cpp 1
/src/serenity/Userland/Libraries/LibCore/IODevice.cpp 1
/src/serenity/Userland/Libraries/LibCore/Object.cpp 5
/src/serenity/Meta/Lagom/../../AK/Weakable.h 3
/src/serenity/Meta/Lagom/../../AK/IntrusiveList.h 6
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 9
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 6
/src/serenity/Meta/Lagom/../../AK/Function.h 17
/src/serenity/Meta/Lagom/../../AK/Atomic.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Object.h 1
/src/serenity/Meta/Lagom/../../AK/Error.h 12
/src/serenity/Userland/Libraries/LibCore/Event.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Event.h 3
/src/serenity/Meta/Lagom/../../AK/WeakPtr.h 6
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/BitCast.h 5
/src/serenity/Userland/Libraries/LibCore/Property.cpp 1
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/Traits.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/Property.h 1
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 1
/src/serenity/Meta/Lagom/../../AK/Result.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibAudio/LoaderError.h 1
/src/serenity/Meta/Lagom/../../AK/FlyString.h 1
/src/serenity/Meta/Lagom/../../AK/FixedArray.h 2

Fuzzer: FuzzRegexPosixExtended

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
10 328 regex::Parser::~Parser() call site
9 71 regex::Regex ::Regex(AK::String, regex::RegexOptions ) call site
9 262 _ZZN5regex5RegexINS_19PosixExtendedParserEE18split_basic_blocksERKNS_8ByteCodeEENKUlTyRKNS_6OpCodeEE_clINS_11OpCode_JumpEEEDaS8_ call site __assert_fail
6 9 LLVMFuzzerTestOneInput call site __assert_fail
5 181 AK::HashMap , false>::keys() const call site __assert_fail
5 207 AK::Vector , 0ul>::remove(unsigned long, unsigned long) call site __assert_fail
4 25 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 61 AK::OwnPtr ::~OwnPtr() call site
4 215 AK::Vector ::try_extend(AK::Vector &&) call site
4 251 regex::Regex ::split_basic_blocks(regex::ByteCode const&) call site __assert_fail
3 16 AK::StringImpl::the_empty_stringimpl() call site
3 30 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail

Runtime coverage analysis

Covered functions
1123
Functions that are reachable but not covered
23
Reachable functions
187
Percentage of reachable functions covered
87.7%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzRegexPosixExtended.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 13
/ 1
/src/serenity/Meta/Lagom/../../AK/String.h 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 4
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexOptions.h 1
/src/serenity/Userland/Libraries/LibRegex/RegexMatcher.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexParser.h 9
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.h 4
/src/serenity/Meta/Lagom/../../AK/DisjointChunks.h 9
/src/serenity/Meta/Lagom/../../AK/Vector.h 35
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.cpp 2
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 4
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptions.h 5
/src/serenity/AK/StringView.cpp 1
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.cpp 8
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 4
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 11
/src/serenity/Userland/Libraries/LibRegex/RegexParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptimizer.cpp 7
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Userland/Libraries/LibRegex/RegexMatch.h 2
/src/serenity/Meta/Lagom/../../AK/QuickSort.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexMatcher.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexByteCode.h 1

Fuzzer: FuzzZip

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
4 52 Archive::Zip::for_each_member(AK::Function ) call site __assert_fail
4 78 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
3 71 AK::StringImpl::create(char const*, AK::ShouldChomp) call site
3 83 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
2 47 Archive::Zip::for_each_member(AK::Function ) call site
2 64 AK::StringImpl::the_empty_stringimpl() call site
2 97 AK::Function ::callable_wrapper() const call site __assert_fail
1 35 LLVMFuzzerTestOneInput call site
1 39 void AK::Function ::init_with_callable (LLVMFuzzerTestOneInput::$_0&&) call site
1 50 AK::String::String() call site
1 92 Archive::Zip::for_each_member(AK::Function ) call site
1 103 AK::ScopeGuard ::operator()(Archive::ZipMember const&) const::{lambda()#1}>::~ScopeGuard() call site

Runtime coverage analysis

Covered functions
122
Functions that are reachable but not covered
11
Reachable functions
66
Percentage of reachable functions covered
83.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzZip.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/Userland/Libraries/LibArchive/Zip.cpp 3
/src/serenity/Meta/Lagom/../../AK/Array.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/ 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibArchive/Zip.h 10
/src/serenity/Meta/Lagom/../../AK/Function.h 8
/src/serenity/Meta/Lagom/../../AK/Atomic.h 1
/src/serenity/Meta/Lagom/../../AK/String.h 2
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 3
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/Checked.h 7
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 1
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/Meta/Lagom/../../AK/BitCast.h 2
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2

Fuzzer: FuzzPGMLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 379 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 443 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 342 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 418 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
12 584 Gfx::Bitmap::scanline_u8(int) call site __assert_fail
10 231 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 361 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
8 470 AK::Formatter ::format(AK::FormatBuilder&, unsigned long) call site __assert_fail
7 305 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
5 110 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
5 140 AK::StringBuilder::to_string() const call site __assert_fail
5 243 AK::StandardFormatter::parse(AK::TypeErasedFormatParams&, AK::FormatParser&) call site __assert_fail

Runtime coverage analysis

Covered functions
410
Functions that are reachable but not covered
47
Reachable functions
271
Percentage of reachable functions covered
82.66%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPGMLoader.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/PortableImageMapLoader.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 6
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 9
/ 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 6
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/src/serenity/Meta/Lagom/../../AK/Error.h 13
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/PortableImageLoaderCommon.h 10
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Streamer.h 4
/src/serenity/Meta/Lagom/../../AK/Array.h 6
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/AK/StringBuilder.cpp 7
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/String.h 5
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 4
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/Format.h 14
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Userland/Libraries/LibGfx/PGMLoader.cpp 2
/src/serenity/Meta/Lagom/../../AK/Vector.h 11
/src/serenity/Userland/Libraries/LibGfx/PortableImageLoaderCommon.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 6
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3

Fuzzer: FuzzWOFF

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 471 kmalloc_array(AK::Checked , AK::Checked ) call site __assert_fail
7 527 WOFF::Font::try_load_from_externally_owned_memory(AK::Span , unsigned int) call site __assert_fail
6 114 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site
5 66 AK::Detail::ByteBuffer<32ul>::create_zeroed(unsigned long) call site
5 510 TTF::Font::try_load_from_offset(AK::Span , unsigned int) call site
4 57 bool AK::Variant , AK::Error>::has () const call site
4 458 TTF::Kern::from_slice(AK::Span ) call site
3 252 Compress::DeflateDecompressor::decode_codes(Compress::CanonicalCode&, AK::Optional &) call site
2 35 AK::Detail::ByteBuffer<32ul>::trim(unsigned long, bool) call site
2 42 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity_slowpath(unsigned long) call site
2 45 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity_slowpath(unsigned long) call site
2 121 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site

Runtime coverage analysis

Covered functions
566
Functions that are reachable but not covered
46
Reachable functions
232
Percentage of reachable functions covered
80.17%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzWOFF.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 5
/src/serenity/Userland/Libraries/LibGfx/Font/WOFF/Font.cpp 6
/src/serenity/Meta/Lagom/../../AK/Checked.h 14
/ 2
/src/serenity/Meta/Lagom/../../AK/Error.h 18
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 21
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 3
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/IntegralMath.h 1
/src/serenity/Meta/Lagom/../../AK/BuiltinWrappers.h 1
/src/serenity/Userland/Libraries/LibCompress/Zlib.cpp 4
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 17
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 9
/src/serenity/Meta/Lagom/../../AK/Stream.h 11
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 6
/src/serenity/Meta/Lagom/../../AK/Vector.h 20
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/Array.h 8
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Userland/Libraries/LibGfx/Font/TrueType/Font.cpp 11
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Tables.h 8
/src/serenity/Userland/Libraries/LibGfx/Font/TrueType/Cmap.cpp 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Cmap.h 4
/src/serenity/Userland/Libraries/LibGfx/Font/TrueType/Glyf.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Glyf.h 2
/src/serenity/Meta/Lagom/../../AK/FixedArray.h 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Font.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/VectorFont.h 1
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/WOFF/Font.h 1

Fuzzer: FuzzICOLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 396 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 460 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 359 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 435 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
10 191 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
10 653 Compress::DeflateDecompressor::decode_codes(Compress::CanonicalCode&, AK::Optional &) call site __assert_fail
9 378 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
9 1032 void Gfx::Bitmap::set_pixel<(Gfx::StorageFormat)1>(int, int, Gfx::Color) call site __assert_fail
8 487 AK::Formatter ::format(AK::FormatBuilder&, unsigned int) call site __assert_fail
7 238 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity(unsigned long) call site malloc_good_size
7 315 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
6 280 AK::Checked ::operator*=(unsigned long) call site __assert_fail

Runtime coverage analysis

Covered functions
752
Functions that are reachable but not covered
82
Reachable functions
433
Percentage of reachable functions covered
81.06%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzICOLoader.cpp 1
/src/serenity/Userland/Libraries/LibGfx/ICOLoader.cpp 15
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 13
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 4
/src/serenity/Meta/Lagom/../../AK/Vector.h 42
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 8
/ 8
/src/serenity/Meta/Lagom/../../AK/Checked.h 21
/src/serenity/Meta/Lagom/../../AK/Error.h 18
/src/serenity/Meta/Lagom/../../AK/Span.h 8
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 11
/src/serenity/Meta/Lagom/../../AK/Stream.h 11
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 11
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 20
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Userland/Libraries/LibGfx/PNGLoader.cpp 30
/src/serenity/Meta/Lagom/../../AK/Array.h 12
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Streamer.h 3
/src/serenity/Meta/Lagom/../../AK/Endian.h 5
/src/serenity/Meta/Lagom/../../AK/Format.h 15
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 8
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 24
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 2
/src/serenity/Userland/Libraries/LibCompress/Zlib.cpp 4
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 17
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 6
/src/serenity/Meta/Lagom/../../AK/Types.h 1

Fuzzer: FuzzDeflateDecompression

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 5 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site
5 181 Compress::DeflateDecompressor::decode_distance(unsigned int) call site __assert_fail
5 233 AK::Detail::ByteBuffer<32ul>::try_resize(unsigned long) call site
4 163 AK::CircularDuplexStream<32768ul>::read(AK::Span ) call site __assert_fail
3 144 Compress::DeflateDecompressor::decode_codes(Compress::CanonicalCode&, AK::Optional &) call site
3 259 AK::DuplexMemoryStream::write(AK::Span ) call site
2 12 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site
2 83 Compress::CanonicalCode::from_bytes(AK::Span ) call site __assert_fail
2 157 Compress::DeflateDecompressor::read(AK::Span ) call site
2 202 AK::CircularDuplexStream<32768ul>::reserve_contiguous_space(unsigned long) call site
2 208 Compress::DeflateDecompressor::read(AK::Span ) call site __assert_fail
2 218 AK::Detail::ByteBuffer<32ul>::trim(unsigned long, bool) call site

Runtime coverage analysis

Covered functions
254
Functions that are reachable but not covered
37
Reachable functions
144
Percentage of reachable functions covered
74.31%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzDeflateDecompression.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 17
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 9
/src/serenity/Meta/Lagom/../../AK/Stream.h 11
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 6
/src/serenity/Meta/Lagom/../../AK/Vector.h 20
/ 2
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/Array.h 8
/src/serenity/Meta/Lagom/../../AK/Error.h 9
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 2
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 17
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1

Fuzzer: FuzzRegexPosixBasic

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
12 9 LLVMFuzzerTestOneInput call site __assert_fail
12 150 AK::Vector , 0ul>::try_ensure_capacity(unsigned long) call site __assert_fail
11 259 AK::Vector ::try_append(regex::Detail::Block&&) call site __assert_fail
10 327 regex::Parser::~Parser() call site
8 71 regex::Regex ::Regex(AK::String, regex::RegexOptions ) call site
7 277 regex::Regex ::split_basic_blocks(regex::ByteCode const&) call site __assert_fail
6 249 AK::OwnPtr ::operator->() call site _ZZN5regex5RegexINS_16PosixBasicParserEE18split_basic_blocksERKNS_8ByteCodeEENKUlTyRKNS_6OpCodeEE_clINS_11OpCode_JumpEEEDaS8_
5 180 AK::HashMap , false>::keys() const call site __assert_fail
5 206 AK::Vector , 0ul>::remove(unsigned long, unsigned long) call site __assert_fail
5 271 regex::Regex ::split_basic_blocks(regex::ByteCode const&) call site _ZZN5regex5RegexINS_16PosixBasicParserEE18split_basic_blocksERKNS_8ByteCodeEENKUlTyRKNS_6OpCodeEE_clINS_15OpCode_ForkJumpEEEDaS8_
4 25 AK::StringImpl::create_uninitialized(unsigned long, char*&) call site __assert_fail
4 61 AK::OwnPtr ::~OwnPtr() call site

Runtime coverage analysis

Covered functions
951
Functions that are reachable but not covered
49
Reachable functions
187
Percentage of reachable functions covered
73.8%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzRegexPosixBasic.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 13
/ 1
/src/serenity/Meta/Lagom/../../AK/String.h 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 4
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 5
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexOptions.h 1
/src/serenity/Userland/Libraries/LibRegex/RegexMatcher.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexParser.h 9
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.h 4
/src/serenity/Meta/Lagom/../../AK/DisjointChunks.h 9
/src/serenity/Meta/Lagom/../../AK/Vector.h 35
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.cpp 2
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 4
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptions.h 5
/src/serenity/AK/StringView.cpp 1
/src/serenity/Userland/Libraries/LibRegex/RegexLexer.cpp 8
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 4
/src/serenity/Meta/Lagom/../../AK/HashMap.h 7
/src/serenity/Meta/Lagom/../../AK/HashTable.h 11
/src/serenity/Userland/Libraries/LibRegex/RegexParser.cpp 1
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexOptimizer.cpp 7
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Userland/Libraries/LibRegex/RegexMatch.h 2
/src/serenity/Meta/Lagom/../../AK/QuickSort.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexMatcher.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexByteCode.h 1

Fuzzer: FuzzTTF

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
52 67 TTF::Font::try_load_from_offset(AK::Span , unsigned int) call site __assert_fail
5 135 TTF::Font::try_load_from_offset(AK::Span , unsigned int) call site
1 2 LLVMFuzzerTestOneInput call site
1 9 bool AK::Checked ::addition_would_overflow (unsigned long, unsigned long) call site __assert_fail
1 31 TTF::Font::try_load_from_offset(AK::Span , unsigned int) call site __assert_fail
1 142 TTF::Font::try_load_from_offset(AK::Span , unsigned int) call site
1 144 AK::RefCounted ::unref() const call site

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
36
Reachable functions
78
Percentage of reachable functions covered
53.85%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzTTF.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 1
/src/serenity/Userland/Libraries/LibGfx/Font/TrueType/Font.cpp 11
/src/serenity/Meta/Lagom/../../AK/Checked.h 13
/ 1
/src/serenity/Meta/Lagom/../../AK/Error.h 9
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Tables.h 8
/src/serenity/Userland/Libraries/LibGfx/Font/TrueType/Cmap.cpp 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Cmap.h 4
/src/serenity/Userland/Libraries/LibGfx/Font/TrueType/Glyf.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Glyf.h 2
/src/serenity/Meta/Lagom/../../AK/FixedArray.h 7
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/BitCast.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/TrueType/Font.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Font/VectorFont.h 1
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 1
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1

Fuzzer: FuzzPDF

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
318 1050 kmalloc_array(AK::Checked , AK::Checked ) call site __assert_fail
189 1675 PDF::Parser::initialize() call site __assert_fail
160 884 AK::Traits ::hash(AK::FlyString const&) call site __assert_fail
150 1369 PDF::Parser::parse_value() call site isxdigit
90 1584 PDF::Parser::initialize_linearization_dict() call site __assert_fail
47 1909 LLVMFuzzerTestOneInput call site __assert_fail
42 1866 PDF::Document::create(AK::Span ) call site
30 714 PDF::Parser::parse_indirect_value(unsigned int, unsigned int) call site __assert_fail
19 864 PDF::Parser::parse_value() call site
19 1562 AK::HashMap , false>::set(AK::FlyString const&, PDF::Value const&) call site
18 410 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
14 688 PDF::Parser::parse_possible_indirect_value_or_ref() call site __assert_fail

Runtime coverage analysis

Covered functions
777
Functions that are reachable but not covered
436
Reachable functions
731
Percentage of reachable functions covered
40.36%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPDF.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 8
/src/serenity/Userland/Libraries/LibPDF/Document.cpp 6
/src/serenity/Userland/Libraries/LibPDF/Parser.cpp 43
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 9
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Reader.h 14
/src/serenity/Meta/Lagom/../../AK/Vector.h 43
/src/serenity/Meta/Lagom/../../AK/WeakPtr.h 9
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 21
/src/serenity/Meta/Lagom/../../AK/Weakable.h 4
/src/serenity/Meta/Lagom/../../AK/Atomic.h 7
/src/serenity/Meta/Lagom/../../AK/Error.h 53
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 7
/ 9
/src/serenity/Meta/Lagom/../../AK/Variant.h 25
/src/serenity/Meta/Lagom/../../AK/BitCast.h 10
/src/serenity/Meta/Lagom/../../AK/Checked.h 17
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 6
/src/serenity/Meta/Lagom/../../AK/HashMap.h 18
/src/serenity/Meta/Lagom/../../AK/HashTable.h 33
/src/serenity/Meta/Lagom/../../AK/String.h 16
/src/serenity/AK/StringImpl.cpp 7
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 10
/src/serenity/Meta/Lagom/../../AK/SourceLocation.h 5
/src/serenity/Meta/Lagom/../../AK/Format.h 24
/src/serenity/AK/Format.cpp 22
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 38
/src/serenity/AK/StringView.cpp 3
/src/serenity/Meta/Lagom/../../AK/Iterator.h 5
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 4
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 3
/src/serenity/AK/StringBuilder.cpp 7
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 32
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 12
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Error.h 3
/src/serenity/AK/String.cpp 3
/src/serenity/Meta/Lagom/../../AK/Function.h 12
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Value.h 16
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Reference.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Parser.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/ObjectDerivatives.h 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Object.h 5
//usr/include/ctype.h 1
/src/serenity/AK/FlyString.cpp 5
/src/serenity/Meta/Lagom/../../AK/Singleton.h 4
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 2
/src/serenity/Meta/Lagom/../../AK/FlyString.h 5
/src/serenity/Meta/Lagom/../../AK/Traits.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Document.h 6
/src/serenity/Userland/Libraries/LibPDF/ObjectDerivatives.cpp 5
/src/serenity/Userland/Libraries/LibPDF/Filter.cpp 11
/src/serenity/AK/Hex.cpp 1
/src/serenity/Meta/Lagom/../../AK/Hex.h 1
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 17
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 9
/src/serenity/Meta/Lagom/../../AK/Stream.h 11
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 6
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Userland/Libraries/LibTextCodec/Decoder.cpp 2
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/XRefTable.h 3
/src/serenity/Userland/Libraries/LibPDF/Encryption.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibPDF/Encryption.h 1

Fuzzer: FuzzMD5

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
1 2 Crypto::Hash::MD5::hash(unsigned char const*, unsigned long) call site
1 83 Crypto::Hash::MD5::update(unsigned char const*, unsigned long) call site __assert_fail

Runtime coverage analysis

Covered functions
23
Functions that are reachable but not covered
4
Reachable functions
22
Percentage of reachable functions covered
81.82%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzMD5.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/MD5.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/HashFunction.h 1
/src/serenity/Userland/Libraries/LibCrypto/Hash/MD5.cpp 15
/src/serenity/Meta/Lagom/../../AK/Span.h 1
/ 1
/src/serenity/Meta/Lagom/../../AK/Memory.h 1

Fuzzer: FuzzMarkdown

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
28 30 AK::Detail::bitap_bitwise(void const*, unsigned long, void const*, unsigned long) call site __assert_fail
26 963 regex::RegexStringView::substring_view(unsigned long, unsigned long) const call site __assert_fail
16 836 regex::RegexStringView::length() const call site _ZN2AK7VariantIJNS_10StringViewENS_8Utf8ViewENS_9Utf16ViewENS_9Utf32ViewEEE7VisitorIJZNK5regex15RegexStringView6lengthEvEUlRKS3_E_ZNKS8_6lengthEvEUlRKT_E_EEC2EOSB_OSF_
9 893 regex::BumpAllocatedLinkedList ::reverse_begin() call site __assert_fail
6 1 LLVMFuzzerTestOneInput call site
6 816 regex::Matcher ::match(AK::Vector const&, AK::Optional >) const call site strlen
5 271 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
5 456 AK::StringUtils::starts_with(AK::StringView, AK::StringView, AK::CaseSensitivity) call site
5 707 AK::Vector ::clear_with_capacity() call site
5 854 regex::RegexStringView::length_in_code_units() const call site
5 1136 AK::StringUtils::ends_with(AK::StringView, AK::StringView, AK::CaseSensitivity) call site
4 195 AK::StringBuilder::to_string() const call site __assert_fail

Runtime coverage analysis

Covered functions
2166
Functions that are reachable but not covered
111
Reachable functions
510
Percentage of reachable functions covered
78.24%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzMarkdown.cpp 1
/src/serenity/Meta/Lagom/../../AK/Checked.h 14
/ 5
/src/serenity/Userland/Libraries/LibMarkdown/Document.cpp 1
/src/serenity/AK/StringView.cpp 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 15
/src/serenity/Meta/Lagom/../../AK/Vector.h 81
/src/serenity/AK/StringUtils.cpp 7
/src/serenity/Meta/Lagom/../../AK/MemMem.h 4
/src/serenity/Meta/Lagom/../../AK/Span.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 4
/src/serenity/Meta/Lagom/../../AK/Iterator.h 20
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Error.h 4
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/LineIterator.h 10
/src/serenity/Userland/Libraries/LibMarkdown/ContainerBlock.cpp 9
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtrVector.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullPtrVector.h 1
/src/serenity/AK/StringBuilder.cpp 9
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Userland/Libraries/LibMarkdown/LineIterator.cpp 4
/src/serenity/Meta/Lagom/../../AK/AllOf.h 4
/src/serenity/Meta/Lagom/../../AK/Find.h 1
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/String.h 11
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 6
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/Userland/Libraries/LibMarkdown/Text.cpp 18
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/Text.h 13
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 34
//usr/include/ctype.h 2
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 39
/src/serenity/AK/String.cpp 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/Paragraph.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/Block.h 1
/src/serenity/Userland/Libraries/LibMarkdown/Table.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/Table.h 3
/src/serenity/Userland/Libraries/LibMarkdown/HorizontalRule.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexMatch.h 12
/src/serenity/Meta/Lagom/../../AK/Variant.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexMatcher.h 3
/src/serenity/Meta/Lagom/../../AK/BitCast.h 5
/src/serenity/Meta/Lagom/../../AK/Utf16View.h 2
/src/serenity/Userland/Libraries/LibRegex/RegexMatcher.cpp 12
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibRegex/RegexOptions.h 1
/src/serenity/Userland/Libraries/LibRegex/RegexOptions.h 3
/src/serenity/Userland/Libraries/LibRegex/RegexMatch.h 15
/src/serenity/Meta/Lagom/../../AK/HashMap.h 1
/src/serenity/Meta/Lagom/../../AK/HashTable.h 1
/src/serenity/Meta/Lagom/../../AK/Utf8View.h 7
/src/serenity/AK/Utf8View.cpp 7
/src/serenity/Meta/Lagom/../../AK/BumpAllocator.h 12
/src/serenity/Userland/Libraries/LibRegex/RegexByteCode.cpp 1
/src/serenity/Meta/Lagom/../../AK/DisjointChunks.h 3
/src/serenity/Meta/Lagom/../../AK/Atomic.h 1
/src/serenity/Meta/Lagom/../../AK/Types.h 1
/src/serenity/Meta/Lagom/../../AK/FlyString.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/HorizontalRule.h 1
/src/serenity/Userland/Libraries/LibMarkdown/List.cpp 1
/src/serenity/Userland/Libraries/LibMarkdown/CodeBlock.cpp 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/CodeBlock.h 1
/src/serenity/Userland/Libraries/LibMarkdown/CommentBlock.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/CommentBlock.h 1
/src/serenity/Userland/Libraries/LibMarkdown/Heading.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/Heading.h 1
/src/serenity/Userland/Libraries/LibMarkdown/BlockQuote.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/ContainerBlock.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/BlockQuote.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/List.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibMarkdown/Document.h 1

Fuzzer: FuzzIMAPParser

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
157 776 AK::Vector ::operator=(AK::Vector &&) call site __assert_fail
155 1018 AK::Vector IMAP::Parser::parse_list (AK::String (*)(AK::StringView)) call site __assert_fail
78 939 kmalloc_array(AK::Checked , AK::Checked ) call site __assert_fail
55 681 IMAP::Parser::parse_literal_string() call site
54 614 IMAP::Parser::parse_number() call site __assert_fail
37 737 AK::String::operator=(AK::String&&) call site __assert_fail
34 547 AK::Vector ::clear() call site __assert_fail
31 582 AK::Vector ::try_append(AK::String&&) call site __assert_fail
24 1274 IMAP::Parser::parse_untagged() call site
18 347 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
12 527 IMAP::Parser::parse_fetch_response() call site
11 288 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail

Runtime coverage analysis

Covered functions
573
Functions that are reachable but not covered
200
Reachable functions
428
Percentage of reachable functions covered
53.27%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzIMAPParser.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibIMAP/Parser.h 4
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 27
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibIMAP/Objects.h 41
/src/serenity/Meta/Lagom/../../AK/String.h 13
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 8
/src/serenity/Meta/Lagom/../../AK/Vector.h 40
/ 8
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/Error.h 10
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 6
/src/serenity/Meta/Lagom/../../AK/Variant.h 12
/src/serenity/Meta/Lagom/../../AK/BitCast.h 6
/src/serenity/Userland/Libraries/LibIMAP/Parser.cpp 33
/src/serenity/Meta/Lagom/../../AK/StringView.h 12
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 7
/src/serenity/Meta/Lagom/../../AK/Checked.h 15
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 3
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/AK/StringView.cpp 5
/src/serenity/Meta/Lagom/../../AK/Iterator.h 9
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 8
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Meta/Lagom/../../AK/Array.h 7
/src/serenity/Meta/Lagom/../../AK/Function.h 15
/src/serenity/Meta/Lagom/../../AK/Atomic.h 1
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 2
/src/serenity/AK/StringImpl.cpp 5
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 7
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 3
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/AK/StringUtils.cpp 5
/src/serenity/Meta/Lagom/../../AK/Find.h 3
/src/serenity/Meta/Lagom/../../AK/Traits.h 2
/src/serenity/AK/String.cpp 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/DateTime.h 1
/src/serenity/Meta/Lagom/../../AK/HashMap.h 10
/src/serenity/Meta/Lagom/../../AK/HashTable.h 10
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 4
/src/serenity/Meta/Lagom/../../AK/Tuple.h 15
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 4
/src/serenity/Meta/Lagom/../../AK/StringHash.h 1
/src/serenity/Meta/Lagom/../../AK/HashFunctions.h 1
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Userland/Libraries/LibCore/DateTime.cpp 4

Fuzzer: FuzzPEM

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
45 393 AK::StringBuilder::try_append(AK::StringView) call site
28 350 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
10 195 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 449 AK::FormatBuilder::put_string(AK::StringView, AK::FormatBuilder::Align, unsigned long, unsigned long, char) call site
8 267 AK::StringBuilder::will_append(unsigned long) call site __assert_fail
8 341 AK::Formatter ::format(AK::FormatBuilder&, AK::StringView) call site __assert_fail
7 296 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
5 207 AK::StandardFormatter::parse(AK::TypeErasedFormatParams&, AK::FormatParser&) call site __assert_fail
4 230 AK::StringView::substring_view(unsigned long) const call site
3 40 AK::StringUtils::trim(AK::StringView, AK::StringView, AK::TrimMode) call site
3 81 AK::decode_base64(AK::StringView)::$_0::operator()(unsigned long&, bool*, bool&) const call site
3 167 void AK::dbgln (AK::Format::Detail::CheckedFormatString ::Type>&&, AK::StringView const&) call site

Runtime coverage analysis

Covered functions
240
Functions that are reachable but not covered
35
Reachable functions
177
Percentage of reachable functions covered
80.23%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPEM.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/Userland/Libraries/LibCrypto/ASN1/PEM.cpp 1
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 14
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 22
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/ 3
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 4
/src/serenity/AK/GenericLexer.cpp 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 14
/src/serenity/AK/StringUtils.cpp 2
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/AK/Base64.cpp 3
/src/serenity/Meta/Lagom/../../AK/Vector.h 13
/src/serenity/Meta/Lagom/../../AK/Error.h 11
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 3
/src/serenity/Meta/Lagom/../../AK/Variant.h 9
/src/serenity/Meta/Lagom/../../AK/Array.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/AK/Format.cpp 20
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1

Fuzzer: FuzzPPMLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 379 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 443 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 342 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 418 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
12 602 Gfx::Bitmap::scanline_u8(int) call site __assert_fail
10 231 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 361 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
8 470 AK::Formatter ::format(AK::FormatBuilder&, unsigned long) call site __assert_fail
7 305 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
5 110 AK::Detail::ByteBuffer<256ul>::try_append(unsigned char) call site __assert_fail
5 140 AK::StringBuilder::to_string() const call site __assert_fail
5 243 AK::StandardFormatter::parse(AK::TypeErasedFormatParams&, AK::FormatParser&) call site __assert_fail

Runtime coverage analysis

Covered functions
407
Functions that are reachable but not covered
47
Reachable functions
274
Percentage of reachable functions covered
82.85%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPPMLoader.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/PortableImageMapLoader.h 5
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 6
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 9
/ 6
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 6
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 14
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 16
/src/serenity/Meta/Lagom/../../AK/Error.h 13
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/PortableImageLoaderCommon.h 10
/src/serenity/Meta/Lagom/../../AK/ScopeGuard.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Streamer.h 4
/src/serenity/Meta/Lagom/../../AK/Array.h 6
/src/serenity/Meta/Lagom/../../AK/Endian.h 2
/src/serenity/AK/StringBuilder.cpp 7
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 14
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 3
/src/serenity/Meta/Lagom/../../AK/String.h 5
/src/serenity/AK/StringImpl.cpp 4
/src/serenity/Meta/Lagom/../../AK/StringImpl.h 4
/src/serenity/Meta/Lagom/../../AK/NonnullRefPtr.h 1
/src/serenity/AK/String.cpp 1
/src/serenity/AK/StringUtils.cpp 3
/src/serenity/Meta/Lagom/../../AK/StringView.h 9
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/Format.h 13
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 1
/src/serenity/Userland/Libraries/LibGfx/PPMLoader.cpp 1
/src/serenity/Meta/Lagom/../../AK/Vector.h 13
/src/serenity/Userland/Libraries/LibGfx/PortableImageLoaderCommon.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 6
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3

Fuzzer: FuzzPoly1305

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
8 25 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity(unsigned long) call site malloc_good_size
5 18 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site __assert_fail
5 36 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site
3 50 bool AK::Variant , AK::Error>::has () const call site
1 3 LLVMFuzzerTestOneInput call site
1 46 AK::Detail::ByteBuffer<32ul>::~ByteBuffer() call site

Runtime coverage analysis

Covered functions
51
Functions that are reachable but not covered
15
Reachable functions
40
Percentage of reachable functions covered
62.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPoly1305.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 1
/src/serenity/Userland/Libraries/LibCrypto/Authentication/Poly1305.cpp 4
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Authentication/Poly1305.h 1
/ 1
/src/serenity/Meta/Lagom/../../AK/ByteReader.h 3
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 1
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 13
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/Error.h 6
/src/serenity/Meta/Lagom/../../AK/Variant.h 6
/src/serenity/Meta/Lagom/../../AK/BitCast.h 2

Fuzzer: FuzzSHA384

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 1 LLVMFuzzerTestOneInput call site

Runtime coverage analysis

Covered functions
30
Functions that are reachable but not covered
12
Reachable functions
12
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzSHA384.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/SHA2.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/HashFunction.h 1
/src/serenity/Userland/Libraries/LibCrypto/Hash/SHA2.cpp 8

Fuzzer: FuzzSHA512

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
1 2 Crypto::Hash::SHA512::hash(unsigned char const*, unsigned long) call site

Runtime coverage analysis

Covered functions
15
Functions that are reachable but not covered
1
Reachable functions
12
Percentage of reachable functions covered
91.67%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzSHA512.cpp 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/SHA2.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Hash/HashFunction.h 1
/src/serenity/Userland/Libraries/LibCrypto/Hash/SHA2.cpp 8

Fuzzer: FuzzPNGLoader

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
32 338 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
26 402 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool) call site __assert_fail
18 301 AK::ErrorOr AK::__format_value (AK::TypeErasedFormatParams&, AK::FormatBuilder&, AK::FormatParser&, void const*) call site __assert_fail
18 377 AK::FormatBuilder::put_u64(unsigned long, unsigned char, bool, bool, bool, AK::FormatBuilder::Align, unsigned long, char, AK::FormatBuilder::SignMode, bool)::$_1::operator()() const call site
10 133 AK::FormatParser::consume_number(unsigned long&) call site __assert_fail
9 320 AK::FormatBuilder::put_padding(char, unsigned long) call site __assert_fail
8 429 AK::Formatter ::format(AK::FormatBuilder&, unsigned int) call site __assert_fail
7 180 AK::Detail::ByteBuffer<256ul>::try_ensure_capacity(unsigned long) call site malloc_good_size
7 257 AK::FormatParser::consume_specifier(AK::FormatParser::FormatSpecifier&) call site __assert_fail
7 962 Gfx::PNGImageDecoderPlugin::frame(unsigned long) call site __assert_fail
6 222 AK::Checked ::operator*=(unsigned long) call site __assert_fail
6 487 Compress::DeflateDecompressor::decompress_all(AK::Span ) call site

Runtime coverage analysis

Covered functions
691
Functions that are reachable but not covered
71
Reachable functions
393
Percentage of reachable functions covered
81.93%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzPNGLoader.cpp 1
/src/serenity/Userland/Libraries/LibGfx/PNGLoader.cpp 29
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/ImageDecoder.h 3
/src/serenity/Meta/Lagom/../../AK/OwnPtr.h 8
/src/serenity/Meta/Lagom/../../AK/NonnullOwnPtr.h 3
/src/serenity/Meta/Lagom/../../AK/Vector.h 39
/src/serenity/Meta/Lagom/../../AK/RefPtr.h 10
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 8
/ 8
/src/serenity/Meta/Lagom/../../AK/RefCounted.h 4
/src/serenity/Userland/Libraries/LibGfx/Bitmap.cpp 7
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Bitmap.h 17
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Size.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCore/AnonymousBuffer.h 2
/src/serenity/Meta/Lagom/../../AK/Checked.h 21
/src/serenity/Meta/Lagom/../../AK/Error.h 16
/src/serenity/Meta/Lagom/../../AK/Array.h 12
/src/serenity/Meta/Lagom/../../AK/Span.h 8
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Streamer.h 3
/src/serenity/Meta/Lagom/../../AK/Endian.h 5
/src/serenity/Meta/Lagom/../../AK/Format.h 15
/src/serenity/AK/Format.cpp 21
/src/serenity/Meta/Lagom/../../AK/GenericLexer.h 13
/src/serenity/Meta/Lagom/../../AK/StringView.h 8
/src/serenity/AK/StringView.cpp 1
/src/serenity/Meta/Lagom/../../AK/Iterator.h 3
/src/serenity/Meta/Lagom/../../AK/CharacterTypes.h 2
/src/serenity/Meta/Lagom/../../AK/CheckedFormatString.h 1
/src/serenity/AK/StringBuilder.cpp 6
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 24
/src/serenity/Meta/Lagom/../../AK/StringBuilder.h 2
/src/serenity/Meta/Lagom/../../AK/kstdio.h 1
/src/serenity/Meta/Lagom/../../AK/NumericLimits.h 2
/src/serenity/Userland/Libraries/LibCompress/Zlib.cpp 4
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 17
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 9
/src/serenity/Meta/Lagom/../../AK/Stream.h 11
/src/serenity/Meta/Lagom/../../AK/BitStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularDuplexStream.h 7
/src/serenity/Meta/Lagom/../../AK/CircularQueue.h 6
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 7
/src/serenity/Meta/Lagom/../../AK/BinarySearch.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 3
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibGfx/Color.h 3

Fuzzer: FuzzGzipCompression

Call tree

The following is the call tree with color coding for whichfunctions are hit/not hit. This info is based on the coverageachieved of all fuzzers together and not just this specificfuzzer. This should change in the future to be per-fuzzer-basis.

For further technical details on what the call tree overview is, please see the Glossary .

Full calltree

The following link provides a visualisation of the full calltree overlayed with coverage information: full calltree

For futher technical details on how the call tree is made, please see the Glossary .

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 275 AK::Detail::ByteBuffer<32ul>::create_uninitialized(unsigned long) call site __assert_fail
5 292 AK::Detail::ByteBuffer<32ul>::try_resize(unsigned long) call site
3 15 Compress::GzipCompressor::write(AK::Span ) call site
3 35 AK::OutputBitStream::write_bits(unsigned int, unsigned long) call site
3 315 AK::ErrorOr , AK::Error>::release_value() call site
2 3 Compress::GzipCompressor::compress_all(AK::Span ) call site
2 121 void Compress::DeflateCompressor::generate_huffman_lengths<288ul>(AK::Array &, AK::Array const&, unsigned long, unsigned short) call site
2 198 Compress::CanonicalCode::from_bytes(AK::Span ) call site __assert_fail
2 207 Compress::DeflateCompressor::flush() call site
2 262 Compress::DeflateCompressor::~DeflateCompressor() call site
2 284 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity_slowpath(unsigned long) call site
2 287 AK::Detail::ByteBuffer<32ul>::try_ensure_capacity_slowpath(unsigned long) call site

Runtime coverage analysis

Covered functions
299
Functions that are reachable but not covered
31
Reachable functions
170
Percentage of reachable functions covered
81.76%
NB: The sum of covered functions and functions that are reachable but not covered need not be 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 our of our static analysis capabilities.
Warning: The amount of covered functions are larger than the amount of reachable functions. This means the functions covered at runtime is larger than those extracted using static analysis. This is likely a result of the static analysis component failing to extract the right callgraph or the coverage runtime being compiled with sanitizerse 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/serenity/Meta/Lagom/Fuzzers/FuzzGzipCompression.cpp 1
/src/serenity/Meta/Lagom/../../AK/Span.h 4
/src/serenity/Userland/Libraries/LibCompress/Gzip.cpp 4
/src/serenity/Meta/Lagom/../../AK/MemoryStream.h 6
/src/serenity/Meta/Lagom/../../AK/Stream.h 13
/src/serenity/Meta/Lagom/../../AK/Vector.h 8
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Gzip.h 3
/src/serenity/Meta/Lagom/../../AK/Endian.h 3
/src/serenity/Userland/Libraries/LibCompress/Deflate.cpp 29
/src/serenity/Meta/Lagom/../../AK/BitStream.h 9
/src/serenity/Meta/Lagom/../../AK/Array.h 28
/ 2
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCompress/Deflate.h 6
/src/serenity/Meta/Lagom/../../AK/StdLibExtras.h 3
/src/serenity/Meta/Lagom/../../AK/TypedTransfer.h 1
/src/serenity/Meta/Lagom/../../AK/BinaryHeap.h 8
/src/serenity/Meta/Lagom/../../AK/Error.h 9
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Checksum/CRC32.h 1
/src/serenity/Meta/Lagom/../../Userland/Libraries/LibCrypto/Checksum/ChecksumFunction.h 1
/src/serenity/Userland/Libraries/LibCrypto/Checksum/CRC32.cpp 2
/src/serenity/Meta/Lagom/../../AK/ByteBuffer.h 17
/src/serenity/Meta/Lagom/../../AK/kmalloc.h 2
/src/serenity/Meta/Lagom/../../AK/Variant.h 8
/src/serenity/Meta/Lagom/../../AK/BitCast.h 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 reaches a high amount of 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
JS::GlobalObject::initialize_global_object() /src/serenity/Userland/Libraries/LibJS/Runtime/GlobalObject.cpp 1 ['class.JS::GlobalObject *'] 30 0 2242 221 74 3045 0 12605 7150

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

Functions statically reachable by fuzzers
16.97%
6946/40922
Cyclomatic complexity statically reachable by fuzzers
20.97%
28618 / 136492

All functions overview

The status of all functions in the project will be as follows if you implement fuzzers for these functions

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

Runtime coverage analysis

This section gives analysis based on data about the runtime coverage information

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

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered
AK::Formatter ::format(AK::FormatBuilder&,unsignedlong) 60 22 36.66%
AK::StandardFormatter::parse(AK::TypeErasedFormatParams&,AK::FormatParser&) 78 36 46.15%
Shell::Parser::parse_function_decl() 84 43 51.19%
Shell::Parser::parse_continuation_control() 32 8 25.0%
Shell::Parser::parse_for_loop() 89 47 52.80%
AK::Formatter ::format(AK::FormatBuilder&,unsignedshort) 60 20 33.33%
AK::Formatter ::format(AK::FormatBuilder&,int) 60 17 28.33%
AK::HashTable ,false>::Entry,AK::HashMap ,false>::EntryTraits,false>::try_rehash(unsignedlong) 38 18 47.36%
AK::HashTable ,AK::Traits ,false>::Entry,AK::HashMap ,AK::Traits ,false>::EntryTraits,false>::try_rehash(unsignedlong) 38 18 47.36%
AK::HashTable ,AK::Traits ,false>::Entry,AK::HashMap ,AK::Traits ,false>::EntryTraits,false>::rehash_in_place() 121 46 38.01%
AK::HashTable *AK::Singleton ,&AK::SingletonInstanceCreator >::create>::get (AK::Atomic *,(AK::MemoryOrder)5>&) 32 12 37.5%
AK::StackInfo::StackInfo() 41 7 17.07%
Crypto::UnsignedBigIntegerAlgorithms::add_into_accumulator_without_allocation(Crypto::UnsignedBigInteger&,Crypto::UnsignedBigIntegerconst&) 39 21 53.84%
JS::BinaryExpression::execute(JS::Interpreter&,JS::GlobalObject&)const 69 11 15.94%
JS::MemberExpression::to_reference(JS::Interpreter&,JS::GlobalObject&)const 72 17 23.61%
JS::UnaryExpression::execute(JS::Interpreter&,JS::GlobalObject&)const 42 13 30.95%
JS::AssignmentExpression::execute(JS::Interpreter&,JS::GlobalObject&)const 166 23 13.85%
JS::ObjectExpression::execute(JS::Interpreter&,JS::GlobalObject&)const 66 22 33.33%
JS::Program::global_declaration_instantiation(JS::Interpreter&,JS::GlobalObject&,JS::GlobalEnvironment&)const 193 68 35.23%
JS::Interpreter::run(JS::Script&) 87 27 31.03%
AK::NonnullOwnPtr JS::Interpreter::create (JS::VM&) 54 23 42.59%
JS::Parser::parse_statement(JS::Parser::AllowLabelledFunction) 73 28 38.35%
JS::Parser::try_parse_labelled_statement(JS::Parser::AllowLabelledFunction) 85 44 51.76%
JS::Parser::parse_class_expression(bool) 326 104 31.90%
JS::Parser::parse_primary_expression() 149 64 42.95%
JS::Parser::parse_unary_prefixed_expression() 80 25 31.25%
JS::Parser::parse_object_expression() 141 60 42.55%
JS::Parser::parse_template_literal(bool) 55 30 54.54%
JS::Parser::parse_secondary_expression(AK::NonnullRefPtr ,int,JS::Associativity,JS::Parser::ForbiddenTokens) 182 47 25.82%
JS::Parser::parse_binding_pattern(JS::Parser::AllowDuplicates,JS::Parser::AllowMemberExpressions) 196 9 4.591%
JS::Parser::consume_identifier() 34 15 44.11%
JS::Parser::consume_identifier_reference() 39 11 28.20%
JS::ScopePusher::add_declaration(AK::NonnullRefPtr ) 63 24 38.09%
JS::Parser::try_parse_arrow_function_expression(bool,bool)::$_22::operator()()const 31 15 48.38%
JS::Parser::parse_formal_parameters(int&,unsignedchar)::$_9::operator()()const 41 8 19.51%
JS::validate_and_apply_property_descriptor(JS::Object*,JS::PropertyKeyconst&,bool,JS::PropertyDescriptorconst&,AK::Optional const&) 129 32 24.80%
JS::Array::set_length(JS::PropertyDescriptorconst&) 89 19 21.34%
JS::Array::internal_define_own_property(JS::PropertyKeyconst&,JS::PropertyDescriptorconst&) 43 6 13.95%
JS::ECMAScriptFunctionObject::initialize(JS::GlobalObject&) 35 7 20.0%
JS::FunctionObject::set_function_name(AK::Variant const&,AK::Optional const&) 54 25 46.29%
JS::NativeFunction::create(JS::GlobalObject&,AK::Function (JS::VM&,JS::GlobalObject&)>,int,JS::PropertyKeyconst&,AK::Optional ,AK::Optional ,AK::Optional const&) 33 11 33.33%
JS::NativeFunction::internal_call(JS::Value,JS::MarkedVector ) 65 22 33.84%
JS::Object::internal_get_own_property(JS::PropertyKeyconst&)const 42 14 33.33%
JS::Object::internal_get(JS::PropertyKeyconst&,JS::Value)const 37 12 32.43%
JS::Object::ordinary_set_with_own_descriptor(JS::PropertyKeyconst&,JS::Value,JS::Value,AK::Optional ) 82 33 40.24%
JS::Object::storage_set(JS::PropertyKeyconst&,JS::ValueAndAttributesconst&) 39 17 43.58%
JS::Object::ordinary_to_primitive(JS::Value::PreferredType)const 37 18 48.64%
JS::ObjectEnvironment::has_binding(AK::FlyStringconst&,AK::Optional *)const 32 7 21.87%
JS::ObjectEnvironment::set_mutable_binding(JS::GlobalObject&,AK::FlyStringconst&,JS::Value,bool) 32 9 28.12%
JS::ObjectPrototype::to_string(JS::VM&,JS::GlobalObject&) 65 22 33.84%
JS::Reference::put_value(JS::GlobalObject&,JS::Value) 59 14 23.72%
JS::Reference::get_value(JS::GlobalObject&)const 56 19 33.92%
JS::Value::to_number(JS::GlobalObject&)const 37 18 48.64%
JS::double_to_string(double) 125 46 36.8%
JS::concatenate_strings(JS::GlobalObject&,JS::PrimitiveStringconst&,JS::PrimitiveStringconst&) 49 17 34.69%
JS::Token::string_value(JS::Token::StringValueStatus&)const 118 51 43.22%
regex::ByteCode::transform_bytecode_repetition_any(regex::ByteCode&,bool) 31 16 51.61%
regex::get_error_string(regex::Error) 43 8 18.60%
regex::insert_into_lookup_table(AK::RedBlackTree &,regex::CompareTypeAndValuePair) 33 16 48.48%
regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&) 233 99 42.48%
regex::ECMA262Parser::parse_atom_escape(regex::ByteCode&,unsignedlong&,bool,bool) 223 75 33.63%
regex::ECMA262Parser::read_capture_group_specifier(bool) 108 56 51.85%
regex::ECMA262Parser::parse_capture_group(regex::ByteCode&,unsignedlong&,bool,bool) 98 43 43.87%
regex::ECMA262Parser::parse_nonempty_class_ranges(AK::Vector &,bool)::$_4::operator()()const 145 59 40.68%
AK::vdbgln(AK::StringView,AK::TypeErasedFormatParams&) 53 7 13.20%
Gfx::Color::Color(Gfx::Color::NamedColor) 83 20 24.09%
TextCodec::get_standardized_encoding(AK::StringView) 89 46 51.68%
AK::InputBitStream::read_bits_big_endian(unsignedlong) 34 15 44.11%
AK::HashTable ::rehash_in_place() 121 14 11.57%
AK::Formatter ::format(AK::FormatBuilder&,unsignedchar) 60 20 33.33%
AK::Formatter ::format(AK::FormatBuilder&,long) 60 17 28.33%
AK::Result Crypto::ASN1::Decoder::read_value (Crypto::ASN1::Class,Crypto::ASN1::Kind,unsignedlong) 35 16 45.71%
TLS::Certificate::parse_asn1(AK::Span ,bool) 502 197 39.24%
AK::URL::serialize(AK::URL::ExcludeFragment)const 47 15 31.91%
SQL::AST::Parser::parse_create_table_statement() 32 14 43.75%
SQL::AST::Parser::parse_alter_table_statement() 34 16 47.05%
AK::Formatter ::format(AK::FormatBuilder&,unsignedint) 60 22 36.66%
IMAP::decode_quoted_printable(AK::StringView) 64 29 45.31%
regex::ByteCode::insert_bytecode_lookaround(regex::ByteCode&&,regex::ByteCode::LookAroundType,unsignedlong) 71 32 45.07%
Audio::FlacLoaderPlugin::parse_header() 78 3 3.846%
AK::ErrorOr Core::Stream::BigEndianInputBitStream::read_bits (unsignedlong) 48 13 27.08%
AK::Formatter ::format(AK::FormatBuilder&,signedchar) 60 20 33.33%
AK::percent_encode_after_encoding(AK::StringView,AK::URL::PercentEncodeSet,bool) 32 14 43.75%
voidAK::dual_pivot_quick_sort ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::CandidateBlock,0ul>,regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::{lambda(auto:1&,auto:2&)#1}>(AK::Vector ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::CandidateBlock,0ul>&,int,int,regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::{lambda(auto:1&,auto:2&)#1}) 71 3 4.225%
regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&) 233 120 51.50%
voidGfx::unfilter_impl (Gfx::Bitmap&,int,voidconst*) 79 24 30.37%
voidGfx::unfilter_impl (Gfx::Bitmap&,int,voidconst*) 79 23 29.11%
voidGfx::unfilter_impl (Gfx::Bitmap&,int,voidconst*) 79 39 49.36%
voidGfx::unfilter_impl (Gfx::Bitmap&,int,voidconst*) 79 38 48.10%
voidAK::dual_pivot_quick_sort ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::CandidateBlock,0ul>,regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::{lambda(auto:1&,auto:2&)#1}>(AK::Vector ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::CandidateBlock,0ul>&,int,int,regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::{lambda(auto:1&,auto:2&)#1}) 71 3 4.225%
regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&) 233 119 51.07%
AK::HashTable ,false>::Entry,AK::HashMap ,false>::EntryTraits,false>::try_rehash(unsignedlong) 38 18 47.36%
PDF::Parser::initialize_linearization_dict() 74 2 2.702%
PDF::Parser::parse_value() 42 15 35.71%
PDF::Parser::parse_possible_indirect_value_or_ref() 31 4 12.90%
PDF::Parser::parse_name() 33 12 36.36%
voidAK::dual_pivot_quick_sort ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::CandidateBlock,0ul>,regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::{lambda(auto:1&,auto:2&)#1}>(AK::Vector ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::CandidateBlock,0ul>&,int,int,regex::Regex ::attempt_rewrite_loops_as_atomic_groups(AK::Vector const&)::{lambda(auto:1&,auto:2&)#1}) 71 3 4.225%
Markdown::LineIterator::match_context(AK::StringView)const 32 16 50.0%
regex::OpCode_Compare::execute(regex::MatchInputconst&,regex::MatchState&)const 184 89 48.36%
regex::OpCode_Compare::compare_character_class(regex::MatchInputconst&,regex::MatchState&,regex::CharClass,unsignedint,bool,bool&) 116 22 18.96%
regex::Matcher ::match(AK::Vector const&,AK::Optional >)const 213 94 44.13%
IMAP::Parser::parse_fetch_response() 52 7 13.46%