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

Fuzzer details

Fuzzer: bs4_fuzzer

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 376 71.2%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 152 28.7%
All colors 528 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
95 296 bs4.element.SoupStrainer._matches call site: 00296 bs4.element.SoupStrainer._matches
66 392 bs4.element.SoupStrainer.search_tag call site: 00392 bs4.element.SoupStrainer._matches
53 233 bs4.element.PageElement.insert call site: 00233 html5lib.treebuilders.base.Node.next_sibling.previous_element.next_element.prefix.name.string
49 123 bs4.BeautifulSoup.decode call site: 00123 bs4.element.SoupStrainer._normalize_search_value
27 95 bs4.element.SoupStrainer._normalize_search_value call site: 00095 bs4.BeautifulSoup.decode
10 479 bs4.formatter.Formatter.attributes call site: 00479 bs4.formatter.Formatter.attribute_value
9 29 bs4.builder.TreeBuilderRegistry.lookup call site: 00029 candidate_set.intersection
5 4 ...bs4_fuzzer.TestOneInput call site: 00004 warnings.warn
5 182 bs4.element.ResultSet.__init__ call site: 00182 bs4.element.ResultSet.__init__
5 206 bs4.element.SoupStrainer._matches call site: 00206 bs4.element.PageElement.replace_with
5 289 bs4.element.SoupStrainer._matches call site: 00289 bs4.element.SoupStrainer._matches
4 490 bs4.formatter.Formatter.substitute call site: 00490 bs4.dammit.EntitySubstitution.quoted_attribute_value

Runtime coverage analysis

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

Files reached

filename functions hit
/ 1
...bs4_fuzzer 8
bs4 38
bs4.builder 7
bs4.element 309
bs4.formatter 6
bs4.dammit 1