The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.
For further technical details on the meaning of columns in the below table, please see the Glossary .
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 |
---|
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 634 | 37.4% |
gold | 395 | 23.3% |
yellow | 7 | 0.41% |
greenyellow | 7 | 0.41% |
lawngreen | 648 | 38.3% |
All colors | 1691 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
146 | 912 | ERR_clear_error | call site | ENGINE_by_id |
60 | 851 | lh_insert | call site | int_engine_configure |
57 | 1060 | get_error_values | call site | ERR_print_errors |
55 | 780 | OPENSSL_init_crypto | call site | OPENSSL_init_crypto |
50 | 1547 | X509V3_EXT_print | call site | asn1_parse2 |
26 | 702 | pkey_set_type | call site | EVP_PKEY_asn1_find_str |
24 | 499 | lh_new | call site | engine_unlocked_finish |
20 | 1663 | X509_print_ex | call site | OBJ_obj2txt |
18 | 1598 | d2i_ASN1_OCTET_STRING | call site | d2i_ASN1_INTEGER |
16 | 1617 | d2i_ASN1_INTEGER | call site | d2i_ASN1_ENUMERATED |
12 | 836 | OBJ_dup | call site | OBJ_add_object |
7 | 442 | i2t_ASN1_OBJECT_name | call site | OBJ_nid2sn |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
608 | 608 | BN_mod_exp_internal | /src/libressl/crypto/bn/bn_exp.c:215 |
364 | 4793 | BN_mod_inverse_internal | /src/libressl/crypto/bn/bn_gcd.c:259 |
287 | 326 | tm_to_gentime | /src/libressl/crypto/asn1/a_time_tm.c:101 |
271 | 901 | BN_mul | /src/libressl/crypto/bn/bn_mul.c:971 |
271 | 758 | BN_mul | /src/libressl/crypto/bn/bn_mul.c:1002 |
228 | 13075 | BN_mod_sqrt | /src/libressl/crypto/bn/bn_sqrt.c:124 |
228 | 8169 | BN_mod_sqrt | /src/libressl/crypto/bn/bn_sqrt.c:228 |
222 | 2660 | ECPKParameters_print | /src/libressl/crypto/ec/eck_prn.c:177 |
211 | 220 | policy_cache_free | /src/libressl/crypto/x509/pcy_cache.c:222 |
187 | 221 | engine_table_select | /src/libressl/crypto/engine/eng_table.c:254 |
138 | 2684 | BN_mod_exp_mont_consttime | /src/libressl/crypto/bn/bn_exp.c:735 |
136 | 633 | pkey_set_type | /src/libressl/crypto/evp/p_lib.c:241 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/x509.c | 1 |
/src/libressl/crypto/asn1/x_x509.c | 3 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/bytestring/bs_cbs.c | 14 |
/src/libressl/crypto/err/err.c | 20 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 5 |
/src/libressl/crypto/stack/stack.c | 14 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_object.c | 18 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/asn1/a_string.c | 5 |
/src/libressl/crypto/asn1/tasn_utl.c | 10 |
/src/libressl/crypto/objects/obj_dat.c | 15 |
/src/libressl/crypto/lhash/lhash.c | 10 |
/src/libressl/crypto/asn1/a_int.c | 12 |
/src/libressl/crypto/asn1/asn1_lib.c | 4 |
/src/libressl/crypto/bytestring/bs_cbb.c | 9 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/asn1/a_type.c | 3 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 6 |
/src/libressl/crypto/asn1/a_time_tm.c | 3 |
/src/libressl/crypto/asn1/asn1_types.c | 4 |
/src/libressl/crypto/bio/bss_null.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 8 |
/src/libressl/crypto/ex_data.c | 3 |
/src/libressl/crypto/asn1/t_x509.c | 8 |
/src/libressl/crypto/x509/x509_set.c | 3 |
/src/libressl/crypto/bio/b_print.c | 2 |
/src/libressl/crypto/x509/x509_cmp.c | 4 |
/src/libressl/crypto/objects/obj_xref.c | 4 |
/src/libressl/crypto/asn1/ameth_lib.c | 9 |
/src/libressl/crypto/engine/tb_asnmth.c | 8 |
/src/libressl/crypto/engine/eng_table.c | 11 |
/src/libressl/crypto/engine/eng_init.c | 4 |
/src/libressl/crypto/engine/eng_lib.c | 6 |
/src/libressl/crypto/engine/tb_pkmeth.c | 4 |
/src/libressl/crypto/evp/pmeth_lib.c | 1 |
/src/libressl/crypto/asn1/a_strex.c | 8 |
/src/libressl/crypto/x509/x509_obj.c | 1 |
/src/libressl/crypto/buffer/buffer.c | 4 |
/src/libressl/crypto/compat/strlcpy.c | 1 |
/src/libressl/crypto/x509/x509name.c | 5 |
/src/libressl/crypto/asn1/tasn_enc.c | 8 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 5 |
/src/libressl/crypto/asn1/a_utf8.c | 2 |
/src/libressl/crypto/asn1/x_pubkey.c | 2 |
/src/libressl/crypto/evp/p_lib.c | 7 |
/src/libressl/crypto/asn1/x_attrib.c | 1 |
/src/libressl/crypto/err/err_prn.c | 2 |
/src/libressl/crypto/crypto_init.c | 2 |
/usr/include/pthread.h | 1 |
/src/libressl/crypto/err/err_all.c | 2 |
/src/libressl/crypto/asn1/asn1_err.c | 1 |
/src/libressl/crypto/conf/conf_sap.c | 4 |
/src/libressl/crypto/conf/conf_mall.c | 1 |
/src/libressl/crypto/asn1/asn_moid.c | 3 |
/src/libressl/crypto/conf/conf_mod.c | 10 |
/src/libressl/crypto/conf/conf_lib.c | 6 |
/src/libressl/crypto/conf/conf_api.c | 3 |
/src/libressl/crypto/objects/obj_lib.c | 1 |
/src/libressl/crypto/engine/eng_cnf.c | 5 |
/src/libressl/crypto/engine/eng_list.c | 3 |
/src/libressl/crypto/engine/eng_ctrl.c | 7 |
/src/libressl/crypto/engine/eng_fat.c | 5 |
/src/libressl/crypto/engine/tb_cipher.c | 3 |
/src/libressl/crypto/engine/tb_digest.c | 3 |
/src/libressl/crypto/engine/tb_rsa.c | 3 |
/src/libressl/crypto/engine/tb_dsa.c | 3 |
/src/libressl/crypto/engine/tb_dh.c | 3 |
/src/libressl/crypto/engine/tb_ecdh.c | 3 |
/src/libressl/crypto/engine/tb_ecdsa.c | 3 |
/src/libressl/crypto/engine/tb_eckey.c | 3 |
/src/libressl/crypto/engine/tb_rand.c | 3 |
/src/libressl/crypto/engine/eng_all.c | 2 |
/src/libressl/crypto/conf/conf_def.c | 1 |
/src/libressl/crypto/x509/x509_def.c | 1 |
/src/libressl/crypto/dso/dso_lib.c | 6 |
/src/libressl/crypto/dso/dso_openssl.c | 1 |
/src/libressl/crypto/dso/dso_null.c | 1 |
/src/libressl/crypto/bio/bss_file.c | 1 |
/src/libressl/crypto/bio/bio_err.c | 1 |
/src/libressl/crypto/bn/bn_err.c | 1 |
/src/libressl/crypto/buffer/buf_err.c | 1 |
/src/libressl/crypto/cms/cms_err.c | 1 |
/src/libressl/crypto/conf/conf_err.c | 1 |
/src/libressl/crypto/cpt_err.c | 1 |
/src/libressl/crypto/ct/ct_err.c | 1 |
/src/libressl/crypto/dh/dh_err.c | 1 |
/src/libressl/crypto/dsa/dsa_err.c | 1 |
/src/libressl/crypto/dso/dso_err.c | 1 |
/src/libressl/crypto/ecdh/ech_err.c | 1 |
/src/libressl/crypto/ecdsa/ecs_err.c | 1 |
/src/libressl/crypto/ec/ec_err.c | 1 |
/src/libressl/crypto/engine/eng_err.c | 1 |
/src/libressl/crypto/evp/evp_err.c | 1 |
/src/libressl/crypto/gost/gost_err.c | 1 |
/src/libressl/crypto/kdf/kdf_err.c | 1 |
/src/libressl/crypto/objects/obj_err.c | 1 |
/src/libressl/crypto/ocsp/ocsp_err.c | 1 |
/src/libressl/crypto/pem/pem_err.c | 1 |
/src/libressl/crypto/pkcs12/pk12err.c | 1 |
/src/libressl/crypto/pkcs7/pkcs7err.c | 1 |
/src/libressl/crypto/rand/rand_err.c | 1 |
/src/libressl/crypto/rsa/rsa_err.c | 1 |
/src/libressl/crypto/ts/ts_err.c | 1 |
/src/libressl/crypto/ui/ui_err.c | 1 |
/src/libressl/crypto/x509/x509_err.c | 2 |
/src/libressl/crypto/evp/c_all.c | 4 |
/src/libressl/crypto/evp/e_des.c | 6 |
/src/libressl/crypto/evp/names.c | 2 |
/src/libressl/crypto/objects/o_names.c | 4 |
/src/libressl/crypto/evp/e_des3.c | 10 |
/src/libressl/crypto/evp/e_xcbc_d.c | 1 |
/src/libressl/crypto/evp/e_rc4.c | 2 |
/src/libressl/crypto/evp/e_rc4_hmac_md5.c | 1 |
/src/libressl/crypto/evp/e_idea.c | 4 |
/src/libressl/crypto/evp/e_rc2.c | 6 |
/src/libressl/crypto/evp/e_bf.c | 4 |
/src/libressl/crypto/evp/e_cast.c | 4 |
/src/libressl/crypto/evp/e_aes.c | 32 |
/src/libressl/crypto/evp/e_aes_cbc_hmac_sha1.c | 2 |
/src/libressl/crypto/evp/e_camellia.c | 18 |
/src/libressl/crypto/evp/e_chacha.c | 1 |
/src/libressl/crypto/evp/e_gost2814789.c | 3 |
/src/libressl/crypto/evp/e_sm4.c | 5 |
/src/libressl/crypto/evp/m_md4.c | 1 |
/src/libressl/crypto/evp/m_md5.c | 1 |
/src/libressl/crypto/evp/m_md5_sha1.c | 1 |
/src/libressl/crypto/evp/m_sha1.c | 5 |
/src/libressl/crypto/evp/m_gostr341194.c | 1 |
/src/libressl/crypto/evp/m_gost2814789.c | 1 |
/src/libressl/crypto/evp/m_streebog.c | 2 |
/src/libressl/crypto/evp/m_ripemd.c | 1 |
/src/libressl/crypto/evp/m_sm3.c | 1 |
/src/libressl/crypto/evp/m_wp.c | 1 |
/src/libressl/crypto/x509/x509_prn.c | 4 |
/src/libressl/crypto/x509/x509_v3.c | 2 |
/src/libressl/crypto/x509/x509_lib.c | 5 |
/src/libressl/crypto/asn1/asn1_par.c | 3 |
/src/libressl/crypto/asn1/a_octet.c | 2 |
/src/libressl/crypto/bio/b_dump.c | 2 |
/src/libressl/crypto/compat/strlcat.c | 1 |
/src/libressl/crypto/asn1/a_enum.c | 2 |
/src/libressl/crypto/x509/x509_utl.c | 1 |
/src/libressl/crypto/asn1/t_x509a.c | 1 |
/src/libressl/crypto/malloc-wrapper.c | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 898 | 28.1% |
gold | 487 | 15.2% |
yellow | 36 | 1.12% |
greenyellow | 38 | 1.19% |
lawngreen | 1730 | 54.2% |
All colors | 3189 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
151 | 2521 | lh_insert | call site | ERR_print_errors_cb |
119 | 2399 | OPENSSL_init_crypto | call site | int_engine_configure |
65 | 1644 | BN_mod_inverse_no_branch | call site | BN_nnmod |
46 | 889 | TS_RESP_print_bio | call site | TS_TST_INFO_print_bio |
28 | 1820 | BN_mod_exp_mont_consttime | call site | BN_MONT_CTX_set |
26 | 1051 | pkey_set_type | call site | EVP_PKEY_asn1_find_str |
25 | 2063 | BN_rand | call site | BN_GF2m_mod_mul_arr |
24 | 2004 | ec_GFp_simple_set_compressed_coordinates | call site | ec_GF2m_simple_set_compressed_coordinates |
18 | 2044 | BN_GF2m_add | call site | BN_GF2m_mod_solve_quad_arr |
16 | 2103 | ec_GF2m_simple_oct2point | call site | EC_POINT_set_compressed_coordinates |
15 | 1093 | lh_new | call site | ENGINE_finish |
14 | 1036 | EVP_PKEY_free_it | call site | engine_unlocked_finish |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
1511 | 1513 | TS_RESP_print_bio | /src/libressl/crypto/ts/ts_rsp_print.c:91 |
1282 | 2865 | old_dsa_priv_decode | /src/libressl/crypto/dsa/dsa_ameth.c:537 |
1089 | 2607 | ec_asn1_group2fieldid | /src/libressl/crypto/ec/ec_asn1.c:695 |
1089 | 2596 | ec_asn1_group2fieldid | /src/libressl/crypto/ec/ec_asn1.c:697 |
1089 | 1763 | ec_asn1_group2fieldid | /src/libressl/crypto/ec/ec_asn1.c:706 |
842 | 1384 | rsa_priv_decode | /src/libressl/crypto/rsa/rsa_ameth.c:249 |
626 | 867 | i2d_PrivateKey | /src/libressl/crypto/asn1/a_pkey.c:130 |
546 | 546 | EC_POINT_set_compressed_coordinates | /src/libressl/crypto/ec/ec_oct.c:87 |
393 | 1421 | decode_gost01_algor_params | /src/libressl/crypto/gost/gostr341001_ameth.c:89 |
390 | 2807 | priv_decode_gost01 | /src/libressl/crypto/gost/gostr341001_ameth.c:428 |
385 | 1035 | x509_name_ex_i2d | /src/libressl/crypto/asn1/x_name.c:354 |
364 | 4793 | BN_mod_inverse_internal | /src/libressl/crypto/bn/bn_gcd.c:259 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/asn1.c | 1 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/bytestring/bs_cbs.c | 28 |
/src/libressl/crypto/err/err.c | 16 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 5 |
/src/libressl/crypto/stack/stack.c | 14 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_object.c | 13 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/asn1/a_string.c | 7 |
/src/libressl/crypto/asn1/tasn_utl.c | 10 |
/src/libressl/crypto/objects/obj_dat.c | 9 |
/src/libressl/crypto/lhash/lhash.c | 10 |
/src/libressl/crypto/asn1/a_int.c | 13 |
/src/libressl/crypto/asn1/asn1_lib.c | 4 |
/src/libressl/crypto/bytestring/bs_cbb.c | 9 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/asn1/a_type.c | 3 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 7 |
/src/libressl/crypto/asn1/a_time_tm.c | 3 |
/src/libressl/crypto/asn1/asn1_types.c | 4 |
/src/libressl/crypto/bio/bss_null.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 8 |
/src/libressl/crypto/ex_data.c | 3 |
/src/libressl/crypto/asn1/tasn_prn.c | 9 |
/src/libressl/crypto/bio/b_print.c | 2 |
/src/libressl/crypto/x509/x509_utl.c | 5 |
/src/libressl/crypto/bn/bn_lib.c | 31 |
/src/libressl/crypto/bn/bn_print.c | 2 |
/src/libressl/crypto/bn/bn_word.c | 4 |
/src/libressl/crypto/bn/bn_shift.c | 4 |
/src/libressl/crypto/bn/bn_asm.c | 10 |
/src/libressl/crypto/asn1/t_x509.c | 2 |
/src/libressl/crypto/compat/strlcpy.c | 1 |
/src/libressl/crypto/asn1/asn1_par.c | 3 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 5 |
/src/libressl/crypto/asn1/a_octet.c | 2 |
/src/libressl/crypto/bio/b_dump.c | 2 |
/src/libressl/crypto/compat/strlcat.c | 1 |
/src/libressl/crypto/asn1/a_enum.c | 2 |
/src/libressl/crypto/asn1/a_strex.c | 6 |
/src/libressl/crypto/asn1/tasn_enc.c | 8 |
/src/libressl/crypto/asn1/a_utf8.c | 2 |
/src/libressl/crypto/malloc-wrapper.c | 1 |
/src/libressl/crypto/ts/ts_asn1.c | 9 |
/src/libressl/crypto/ts/ts_req_print.c | 1 |
/src/libressl/crypto/ts/ts_req_utils.c | 8 |
/src/libressl/crypto/ts/ts_lib.c | 5 |
/src/libressl/crypto/x509/x509_v3.c | 4 |
/src/libressl/crypto/x509/x509_prn.c | 3 |
/src/libressl/crypto/x509/x509_lib.c | 5 |
/src/libressl/crypto/ts/ts_rsp_print.c | 5 |
/src/libressl/crypto/ts/ts_rsp_utils.c | 15 |
/src/libressl/crypto/x509/x509_alt.c | 1 |
/src/libressl/crypto/x509/x509_obj.c | 1 |
/src/libressl/crypto/buffer/buffer.c | 4 |
/src/libressl/crypto/dsa/dsa_asn1.c | 4 |
/src/libressl/crypto/dsa/dsa_sign.c | 1 |
/src/libressl/crypto/dsa/dsa_prn.c | 2 |
/src/libressl/crypto/evp/p_lib.c | 12 |
/src/libressl/crypto/engine/eng_init.c | 4 |
/src/libressl/crypto/engine/eng_lib.c | 6 |
/src/libressl/crypto/engine/tb_pkmeth.c | 4 |
/src/libressl/crypto/evp/pmeth_lib.c | 1 |
/src/libressl/crypto/engine/tb_asnmth.c | 8 |
/src/libressl/crypto/asn1/ameth_lib.c | 9 |
/src/libressl/crypto/engine/eng_table.c | 11 |
/src/libressl/crypto/dsa/dsa_lib.c | 2 |
/src/libressl/crypto/asn1/x_attrib.c | 1 |
/src/libressl/crypto/rsa/rsa_asn1.c | 2 |
/src/libressl/crypto/rsa/rsa_prn.c | 1 |
/src/libressl/crypto/rsa/rsa_lib.c | 2 |
/src/libressl/crypto/bn/bn_blind.c | 1 |
/src/libressl/crypto/ec/ec_asn1.c | 10 |
/src/libressl/crypto/ec/ec_curve.c | 3 |
/src/libressl/crypto/bn/bn_ctx.c | 13 |
/src/libressl/crypto/ec/ec_lib.c | 32 |
/src/libressl/crypto/ec/ec_cvt.c | 2 |
/src/libressl/crypto/ec/ecp_mont.c | 1 |
/src/libressl/crypto/ec/ec2_smpl.c | 1 |
/src/libressl/crypto/bn/bn_add.c | 4 |
/src/libressl/crypto/bn/bn_div.c | 3 |
/src/libressl/crypto/ec/ec_oct.c | 3 |
/src/libressl/crypto/ec/ecp_oct.c | 3 |
/src/libressl/crypto/bn/bn_mod.c | 6 |
/src/libressl/crypto/bn/bn_sqr.c | 3 |
/src/libressl/crypto/bn/bn_mul.c | 5 |
/src/libressl/crypto/bn/bn_sqrt.c | 1 |
/src/libressl/crypto/bn/bn_exp.c | 9 |
/src/libressl/crypto/bn/bn_mont.c | 8 |
/src/libressl/crypto/bn/bn_gcd.c | 3 |
/src/libressl/crypto/./constant_time_locl.h | 4 |
/src/libressl/crypto/bn/bn_recp.c | 6 |
/src/libressl/crypto/bn/bn_rand.c | 3 |
/src/libressl/crypto/compat/arc4random.c | 6 |
/src/libressl/crypto/compat/arc4random_linux.h | 4 |
/src/libressl/crypto/compat/chacha_private.h | 3 |
/src/libressl/crypto/bn/bn_kron.c | 1 |
/src/libressl/crypto/ec/ec2_oct.c | 3 |
/src/libressl/crypto/bn/bn_gf2m.c | 7 |
/src/libressl/crypto/ec/eck_prn.c | 4 |
/src/libressl/crypto/ec/ec_print.c | 1 |
/src/libressl/crypto/asn1/t_pkey.c | 1 |
/src/libressl/crypto/ec/ec_key.c | 3 |
/src/libressl/crypto/ec/ec_kmeth.c | 2 |
/src/libressl/crypto/engine/tb_eckey.c | 5 |
/src/libressl/crypto/ecdsa/ecs_asn1.c | 1 |
/src/libressl/crypto/asn1/a_pkey.c | 2 |
/src/libressl/crypto/asn1/tasn_typ.c | 1 |
/src/libressl/crypto/asn1/p8_pkey.c | 3 |
/src/libressl/crypto/evp/evp_pkey.c | 1 |
/src/libressl/ssl/ssl_asn1.c | 1 |
/src/libressl/ssl/ssl_sess.c | 2 |
/src/libressl/ssl/ssl_init.c | 2 |
/usr/include/pthread.h | 1 |
/src/libressl/crypto/crypto_init.c | 2 |
/src/libressl/crypto/err/err_all.c | 2 |
/src/libressl/crypto/asn1/asn1_err.c | 1 |
/src/libressl/crypto/conf/conf_sap.c | 4 |
/src/libressl/crypto/conf/conf_mall.c | 1 |
/src/libressl/crypto/asn1/asn_moid.c | 3 |
/src/libressl/crypto/conf/conf_mod.c | 10 |
/src/libressl/crypto/conf/conf_lib.c | 6 |
/src/libressl/crypto/conf/conf_api.c | 3 |
/src/libressl/crypto/engine/eng_cnf.c | 5 |
/src/libressl/crypto/engine/eng_list.c | 3 |
/src/libressl/crypto/engine/eng_ctrl.c | 7 |
/src/libressl/crypto/engine/eng_fat.c | 5 |
/src/libressl/crypto/engine/tb_cipher.c | 3 |
/src/libressl/crypto/engine/tb_digest.c | 3 |
/src/libressl/crypto/engine/tb_rsa.c | 3 |
/src/libressl/crypto/engine/tb_dsa.c | 3 |
/src/libressl/crypto/engine/tb_dh.c | 3 |
/src/libressl/crypto/engine/tb_ecdh.c | 3 |
/src/libressl/crypto/engine/tb_ecdsa.c | 3 |
/src/libressl/crypto/engine/tb_rand.c | 3 |
/src/libressl/crypto/engine/eng_all.c | 2 |
/src/libressl/crypto/conf/conf_def.c | 1 |
/src/libressl/crypto/x509/x509_def.c | 1 |
/src/libressl/crypto/dso/dso_lib.c | 6 |
/src/libressl/crypto/dso/dso_openssl.c | 1 |
/src/libressl/crypto/dso/dso_null.c | 1 |
/src/libressl/crypto/bio/bss_file.c | 1 |
/src/libressl/crypto/err/err_prn.c | 2 |
/src/libressl/crypto/bio/bio_err.c | 1 |
/src/libressl/crypto/bn/bn_err.c | 1 |
/src/libressl/crypto/buffer/buf_err.c | 1 |
/src/libressl/crypto/cms/cms_err.c | 1 |
/src/libressl/crypto/conf/conf_err.c | 1 |
/src/libressl/crypto/cpt_err.c | 1 |
/src/libressl/crypto/ct/ct_err.c | 1 |
/src/libressl/crypto/dh/dh_err.c | 1 |
/src/libressl/crypto/dsa/dsa_err.c | 1 |
/src/libressl/crypto/dso/dso_err.c | 1 |
/src/libressl/crypto/ecdh/ech_err.c | 1 |
/src/libressl/crypto/ecdsa/ecs_err.c | 1 |
/src/libressl/crypto/ec/ec_err.c | 1 |
/src/libressl/crypto/engine/eng_err.c | 1 |
/src/libressl/crypto/evp/evp_err.c | 1 |
/src/libressl/crypto/gost/gost_err.c | 1 |
/src/libressl/crypto/kdf/kdf_err.c | 1 |
/src/libressl/crypto/objects/obj_err.c | 1 |
/src/libressl/crypto/ocsp/ocsp_err.c | 1 |
/src/libressl/crypto/pem/pem_err.c | 1 |
/src/libressl/crypto/pkcs12/pk12err.c | 1 |
/src/libressl/crypto/pkcs7/pkcs7err.c | 1 |
/src/libressl/crypto/rand/rand_err.c | 1 |
/src/libressl/crypto/rsa/rsa_err.c | 1 |
/src/libressl/crypto/ts/ts_err.c | 1 |
/src/libressl/crypto/ui/ui_err.c | 1 |
/src/libressl/crypto/x509/x509_err.c | 2 |
/src/libressl/crypto/evp/c_all.c | 4 |
/src/libressl/crypto/evp/e_des.c | 6 |
/src/libressl/crypto/evp/names.c | 2 |
/src/libressl/crypto/objects/o_names.c | 4 |
/src/libressl/crypto/evp/e_des3.c | 10 |
/src/libressl/crypto/evp/e_xcbc_d.c | 1 |
/src/libressl/crypto/evp/e_rc4.c | 2 |
/src/libressl/crypto/evp/e_rc4_hmac_md5.c | 1 |
/src/libressl/crypto/evp/e_idea.c | 4 |
/src/libressl/crypto/evp/e_rc2.c | 6 |
/src/libressl/crypto/evp/e_bf.c | 4 |
/src/libressl/crypto/evp/e_cast.c | 4 |
/src/libressl/crypto/evp/e_aes.c | 32 |
/src/libressl/crypto/evp/e_aes_cbc_hmac_sha1.c | 2 |
/src/libressl/crypto/evp/e_camellia.c | 18 |
/src/libressl/crypto/evp/e_chacha.c | 1 |
/src/libressl/crypto/evp/e_gost2814789.c | 3 |
/src/libressl/crypto/evp/e_sm4.c | 5 |
/src/libressl/crypto/evp/m_md4.c | 1 |
/src/libressl/crypto/evp/m_md5.c | 1 |
/src/libressl/crypto/evp/m_md5_sha1.c | 1 |
/src/libressl/crypto/evp/m_sha1.c | 5 |
/src/libressl/crypto/evp/m_gostr341194.c | 1 |
/src/libressl/crypto/evp/m_gost2814789.c | 1 |
/src/libressl/crypto/evp/m_streebog.c | 2 |
/src/libressl/crypto/evp/m_ripemd.c | 1 |
/src/libressl/crypto/evp/m_sm3.c | 1 |
/src/libressl/crypto/evp/m_wp.c | 1 |
/src/libressl/ssl/ssl_err.c | 2 |
/src/libressl/ssl/ssl_algs.c | 1 |
/src/libressl/crypto/asn1/x_x509.c | 2 |
/src/libressl/ssl/ssl_txt.c | 1 |
/src/libressl/ssl/ssl_lib.c | 1 |
/src/libressl/crypto/x509/x509_txt.c | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 85 | 34.9% |
gold | 4 | 1.64% |
yellow | 3 | 1.23% |
greenyellow | 1 | 0.41% |
lawngreen | 150 | 61.7% |
All colors | 243 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
27 | 190 | FuzzerTestOneInput | call site | BN_print_fp |
20 | 219 | CRYPTO_add_lock | call site | BN_print_fp |
6 | 25 | freezero | call site | BN_free |
6 | 32 | FuzzerTestOneInput | call site | OPENSSL_showfatal |
4 | 2 | FuzzerTestOneInput | call site | BN_new |
3 | 147 | bn_mul_recursive | call site | bn_mul_comba4 |
2 | 74 | BN_div_internal | call site | bn_expand2 |
1 | 15 | ERR_get_state | call site | ERR_STATE_free |
1 | 18 | bn_expand2 | call site | ERR_put_error |
1 | 20 | bn_expand_internal | call site | ERR_put_error |
1 | 22 | bn_expand_internal | call site | ERR_put_error |
1 | 48 | BN_div | call site | ERR_put_error |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
39 | 39 | BN_usub | /src/libressl/crypto/bn/bn_add.c:160 |
39 | 39 | BN_CTX_new | /src/libressl/crypto/bn/bn_ctx.c:227 |
39 | 39 | BN_CTX_get | /src/libressl/crypto/bn/bn_ctx.c:314 |
39 | 39 | BN_div_internal | /src/libressl/crypto/bn/bn_div.c:148 |
39 | 39 | BN_new | /src/libressl/crypto/bn/bn_lib.c:100 |
39 | 39 | bn_expand_internal | /src/libressl/crypto/bn/bn_lib.c:277 |
39 | 39 | bn_expand_internal | /src/libressl/crypto/bn/bn_lib.c:281 |
39 | 39 | bn_expand_internal | /src/libressl/crypto/bn/bn_lib.c:286 |
39 | 39 | BN_lshift | /src/libressl/crypto/bn/bn_shift.c:143 |
39 | 39 | BN_rshift | /src/libressl/crypto/bn/bn_shift.c:185 |
15 | 117 | BN_bin2bn | /src/libressl/crypto/bn/bn_lib.c:577 |
15 | 15 | BN_bin2bn | /src/libressl/crypto/bn/bn_lib.c:590 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/bndiv.c | 1 |
/src/libressl/crypto/bn/bn_lib.c | 20 |
/src/libressl/crypto/err/err.c | 5 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 4 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/compat/getprogname_linux.c | 1 |
/src/libressl/crypto/compat/syslog_r.c | 1 |
/src/libressl/crypto/bn/bn_div.c | 2 |
/src/libressl/crypto/bn/bn_ctx.c | 7 |
/src/libressl/crypto/bn/bn_shift.c | 2 |
/src/libressl/crypto/bn/bn_asm.c | 6 |
/src/libressl/crypto/bn/bn_mul.c | 5 |
/src/libressl/crypto/bn/bn_add.c | 3 |
/src/libressl/crypto/bn/bn_print.c | 2 |
/src/libressl/crypto/bio/bss_file.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 6 |
/src/libressl/crypto/ex_data.c | 3 |
/usr/include/x86_64-linux-gnu/bits/stdio.h | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 259 | 35.1% |
gold | 67 | 9.09% |
yellow | 21 | 2.84% |
greenyellow | 32 | 4.34% |
lawngreen | 358 | 48.5% |
All colors | 737 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
194 | 403 |
cryptofuzz::ExecutorBase
|
call site | _ZN8nlohmann14adl_serializerINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEvE7to_jsonINS_10basic_jsonINS1_3mapENS1_6vectorES7_blmdS5_S0_EERS7_EEDTcmclL_ZNS_12_GLOBAL__N_17to_jsonEEfp_clsr3stdE7forwardIT0_Efp0_EEcvv_EERT_OSG_ |
20 | 624 |
cryptofuzz::ExecutorBase
|
call site | puts |
11 | 390 |
cryptofuzz::ExecutorBase
|
call site | __cxa_get_exception_ptr |
7 | 364 |
cryptofuzz::ExecutorBase
|
call site | |
7 | 610 | cryptofuzz::Buffer::GetPtr(fuzzing::datasource::Datasource*) const | call site | __cxa_get_exception_ptr |
3 | 375 |
cryptofuzz::ExecutorBase
|
call site | |
2 | 381 |
cryptofuzz::ExecutorBase
|
call site | |
2 | 386 |
cryptofuzz::ExecutorBase
|
call site | |
2 | 605 |
cryptofuzz::tests::test(cryptofuzz::operation::Digest const&, std::__1::optional
|
call site | |
1 | 120 | cryptofuzz::Driver::Run(unsigned char const*, unsigned long) const | call site | |
1 | 125 | cryptofuzz::Driver::Run(unsigned char const*, unsigned long) const | call site | |
1 | 127 | cryptofuzz::Driver::Run(unsigned char const*, unsigned long) const | call site |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
8491 | 8491 |
cryptofuzz::Options::Options(int,char**,std::__1::vector
|
/src/cryptofuzz/options.cpp:64 |
1571 | 2080 | do_sigver_init | /src/libressl/crypto/evp/m_sigver.c:78 |
1021 | 1728 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2343 |
1021 | 1728 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2352 |
1021 | 1728 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2360 |
1021 | 1395 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2331 |
1021 | 1395 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2343 |
1021 | 1395 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2351 |
1021 | 1395 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2360 |
957 | 1353 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2343 |
957 | 1353 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2351 |
957 | 1353 |
cryptofuzz::ExecutorBase
|
/src/cryptofuzz/executor.cpp:2360 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/cryptofuzz/entry.cpp | 1 |
/src/cryptofuzz/driver.cpp | 1 |
/src/cryptofuzz/include/cryptofuzz/repository.h | 89 |
/src/cryptofuzz/executor.cpp | 175 |
/src/cryptofuzz/fuzzing-headers/include/fuzzing/datasource/id.hpp | 1 |
/src/cryptofuzz/./executor.h | 3 |
/src/cryptofuzz/components.cpp | 11 |
/src/cryptofuzz/include/cryptofuzz/generic.h | 3 |
/src/cryptofuzz/fuzzing-headers/include/fuzzing/datasource/datasource.hpp | 8 |
/src/cryptofuzz/options.cpp | 2 |
/src/cryptofuzz/include/cryptofuzz/operations.h | 6 |
/usr/local/bin/../include/c++/v1/optional | 4 |
/src/cryptofuzz/operation.cpp | 2 |
/src/cryptofuzz/repository.cpp | 2 |
/usr/local/bin/../include/c++/v1/stdexcept | 1 |
/src/cryptofuzz/util.cpp | 6 |
/src/cryptofuzz/include/cryptofuzz/../../third_party/json/json.hpp | 50 |
/usr/local/bin/../include/c++/v1/exception | 2 |
/usr/include/boost/algorithm/hex.hpp | 3 |
/usr/include/boost/range/begin.hpp | 2 |
/usr/include/boost/range/end.hpp | 2 |
/src/cryptofuzz/./third_party/json/json.hpp | 5 |
/usr/local/bin/../include/c++/v1/stdlib.h | 1 |
/usr/local/bin/../include/c++/v1/math.h | 4 |
/src/cryptofuzz/tests.cpp | 1 |
/src/cryptofuzz/fuzzing-headers/include/fuzzing/exception.hpp | 2 |
/src/cryptofuzz/fuzzing-headers/include/fuzzing/memory.hpp | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 194 | 29.4% |
gold | 9 | 1.36% |
yellow | 1 | 0.15% |
greenyellow | 2 | 0.30% |
lawngreen | 452 | 68.6% |
All colors | 658 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
60 | 261 | BN_mod_inverse_no_branch | call site | BN_nnmod |
28 | 481 | BN_mod_exp_mont_consttime | call site | BN_MONT_CTX_set |
27 | 604 | FuzzerTestOneInput | call site | BN_print_fp |
12 | 633 | CRYPTO_add_lock | call site | BN_print_fp |
9 | 323 | BN_mul_word | call site | BN_nnmod |
6 | 41 | FuzzerTestOneInput | call site | OPENSSL_showfatal |
3 | 2 | FuzzerTestOneInput | call site | ERR_put_error |
3 | 222 | bn_mul_recursive | call site | bn_mul_comba4 |
3 | 335 | BN_MONT_CTX_set | call site | BN_add_word |
2 | 127 | BN_div_internal | call site | BN_set_word |
2 | 142 | BN_div_internal | call site | bn_sub_words |
2 | 258 | BN_mod_inverse_no_branch | call site | ERR_put_error |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
624 | 4793 | BN_mod_inverse_internal | /src/libressl/crypto/bn/bn_gcd.c:259 |
39 | 4367 | BN_mod_exp_mont_internal | /src/libressl/crypto/bn/bn_exp.c:400 |
39 | 1860 | BN_mod_inverse_no_branch | /src/libressl/crypto/bn/bn_gcd.c:598 |
39 | 69 | BN_mod_inverse_no_branch | /src/libressl/crypto/bn/bn_gcd.c:709 |
39 | 39 | BN_usub | /src/libressl/crypto/bn/bn_add.c:160 |
39 | 39 | BN_CTX_new | /src/libressl/crypto/bn/bn_ctx.c:227 |
39 | 39 | BN_CTX_get | /src/libressl/crypto/bn/bn_ctx.c:314 |
39 | 39 | BN_div_internal | /src/libressl/crypto/bn/bn_div.c:148 |
39 | 39 | BN_mod_exp_recp | /src/libressl/crypto/bn/bn_exp.c:264 |
39 | 39 | BN_mod_exp_mont_consttime | /src/libressl/crypto/bn/bn_exp.c:665 |
39 | 39 | BN_mod_exp_mont_word | /src/libressl/crypto/bn/bn_exp.c:934 |
39 | 39 | BN_mod_exp_mont_word | /src/libressl/crypto/bn/bn_exp.c:943 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/bignum.c | 1 |
/src/libressl/crypto/bn/bn_lib.c | 27 |
/src/libressl/crypto/err/err.c | 5 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 4 |
/src/libressl/crypto/bn/bn_ctx.c | 13 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/compat/getprogname_linux.c | 1 |
/src/libressl/crypto/compat/syslog_r.c | 1 |
/src/libressl/crypto/bn/bn_exp.c | 10 |
/src/libressl/crypto/bn/bn_mont.c | 8 |
/src/libressl/crypto/bn/bn_gcd.c | 3 |
/src/libressl/crypto/bn/bn_mod.c | 2 |
/src/libressl/crypto/bn/bn_div.c | 3 |
/src/libressl/crypto/bn/bn_shift.c | 4 |
/src/libressl/crypto/bn/bn_asm.c | 9 |
/src/libressl/crypto/bn/bn_add.c | 4 |
/src/libressl/crypto/bn/bn_mul.c | 5 |
/src/libressl/crypto/bn/bn_word.c | 3 |
/src/libressl/crypto/bn/bn_sqr.c | 3 |
/src/libressl/crypto/./constant_time_locl.h | 4 |
/src/libressl/crypto/bn/bn_recp.c | 6 |
/src/libressl/crypto/bn/bn_print.c | 2 |
/src/libressl/crypto/bio/bss_file.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 6 |
/src/libressl/crypto/ex_data.c | 3 |
/usr/include/x86_64-linux-gnu/bits/stdio.h | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 232 | 29.1% |
gold | 9 | 1.12% |
yellow | 4 | 0.50% |
greenyellow | 4 | 0.50% |
lawngreen | 548 | 68.7% |
All colors | 797 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
54 | 585 | X509V3_EXT_print | call site | asn1_parse2 |
38 | 640 | d2i_ASN1_OCTET_STRING | call site | d2i_ASN1_INTEGER |
24 | 491 | lh_new | call site | engine_unlocked_finish |
7 | 434 | i2t_ASN1_OBJECT_name | call site | OBJ_nid2sn |
7 | 482 | ameth_cmp_BSEARCH_CMP_FN | call site | ENGINE_get_pkey_asn1_meth_engine |
6 | 465 | X509_signature_print | call site | sk_find |
5 | 411 | BIO_vprintf | call site | ERR_put_error |
5 | 422 | X509_signature_print | call site | ERR_put_error |
5 | 773 | ASN1_item_ex_i2d | call site | ASN1_item_ex_i2d |
4 | 679 | ASN1_OCTET_STRING_free | call site | ASN1_OCTET_STRING_free |
3 | 157 | recallocarray | call site | __errno_location |
3 | 193 | ASN1_primitive_new | call site | ERR_put_error |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
824 | 3460 | rsa_pss_param_print | /src/libressl/crypto/rsa/rsa_ameth.c:323 |
824 | 3256 | rsa_pss_param_print | /src/libressl/crypto/rsa/rsa_ameth.c:337 |
824 | 3046 | rsa_pss_param_print | /src/libressl/crypto/rsa/rsa_ameth.c:346 |
824 | 2499 | rsa_pss_param_print | /src/libressl/crypto/rsa/rsa_ameth.c:361 |
598 | 1793 | SCT_print | /src/libressl/crypto/ct/ct_prn.c:155 |
586 | 1463 | SCT_print | /src/libressl/crypto/ct/ct_prn.c:163 |
520 | 604 | EVP_PKEY_CTX_free | /src/libressl/crypto/evp/pmeth_lib.c:343 |
365 | 365 | X509_NAME_print_ex | /src/libressl/crypto/asn1/a_strex.c:569 |
187 | 221 | engine_table_select | /src/libressl/crypto/engine/eng_table.c:254 |
144 | 617 | EVP_DigestInit_ex | /src/libressl/crypto/evp/digest.c:152 |
80 | 139 | ENGINE_finish | /src/libressl/crypto/engine/eng_init.c:137 |
52 | 361 | EVP_DigestInit_ex | /src/libressl/crypto/evp/digest.c:183 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/crl.c | 1 |
/src/libressl/crypto/asn1/x_crl.c | 8 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/bytestring/bs_cbs.c | 14 |
/src/libressl/crypto/err/err.c | 9 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 2 |
/src/libressl/crypto/stack/stack.c | 14 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_object.c | 13 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/asn1/a_string.c | 5 |
/src/libressl/crypto/asn1/tasn_utl.c | 10 |
/src/libressl/crypto/objects/obj_dat.c | 7 |
/src/libressl/crypto/lhash/lhash.c | 3 |
/src/libressl/crypto/asn1/a_int.c | 13 |
/src/libressl/crypto/asn1/asn1_lib.c | 4 |
/src/libressl/crypto/bytestring/bs_cbb.c | 9 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/asn1/a_type.c | 2 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 6 |
/src/libressl/crypto/asn1/a_time_tm.c | 3 |
/src/libressl/crypto/asn1/asn1_types.c | 3 |
/src/libressl/crypto/bio/bss_null.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 7 |
/src/libressl/crypto/ex_data.c | 3 |
/src/libressl/crypto/asn1/t_crl.c | 1 |
/src/libressl/crypto/bio/b_print.c | 2 |
/src/libressl/crypto/asn1/t_x509.c | 5 |
/src/libressl/crypto/objects/obj_xref.c | 4 |
/src/libressl/crypto/asn1/ameth_lib.c | 6 |
/src/libressl/crypto/engine/tb_asnmth.c | 4 |
/src/libressl/crypto/engine/eng_table.c | 4 |
/src/libressl/crypto/engine/eng_init.c | 2 |
/src/libressl/crypto/engine/eng_lib.c | 1 |
/src/libressl/crypto/engine/tb_pkmeth.c | 1 |
/src/libressl/crypto/evp/pmeth_lib.c | 1 |
/src/libressl/crypto/x509/x509_obj.c | 1 |
/src/libressl/crypto/buffer/buffer.c | 4 |
/src/libressl/crypto/compat/strlcpy.c | 1 |
/src/libressl/crypto/x509/x509_prn.c | 4 |
/src/libressl/crypto/x509/x509_v3.c | 2 |
/src/libressl/crypto/x509/x509_lib.c | 5 |
/src/libressl/crypto/asn1/asn1_par.c | 3 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 5 |
/src/libressl/crypto/asn1/a_octet.c | 2 |
/src/libressl/crypto/bio/b_dump.c | 2 |
/src/libressl/crypto/compat/strlcat.c | 1 |
/src/libressl/crypto/asn1/a_enum.c | 2 |
/src/libressl/crypto/x509/x509_utl.c | 1 |
/src/libressl/crypto/asn1/tasn_enc.c | 8 |
/src/libressl/crypto/malloc-wrapper.c | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 335 | 61.5% |
gold | 6 | 1.10% |
yellow | 0 | 0.0% |
greenyellow | 1 | 0.18% |
lawngreen | 202 | 37.1% |
All colors | 544 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
104 | 392 | asn1_d2i_primitive | call site | asn1_item_d2i_sequence |
28 | 251 | asn1_d2i_primitive_content | call site | asn1_collect |
22 | 191 | CRYPTO_add_lock | call site | ASN1_template_free |
18 | 319 | asn1_c2i_primitive | call site | c2i_ASN1_BIT_STRING_cbs |
18 | 357 | asn1_c2i_primitive | call site | asn1_time_parse_cbs |
16 | 159 | ASN1_item_ex_d2i | call site | asn1_template_stack_of_d2i |
16 | 501 | asn1_parse2 | call site | BIO_write |
15 | 303 | ASN1_STRING_type_new | call site | asn1_c2i_primitive |
9 | 291 | ASN1_item_ex_new | call site | asn1_item_ex_new |
8 | 181 | ASN1_STRING_clear | call site | asn1_item_free |
8 | 220 | asn1_check_tag | call site | ERR_put_error |
7 | 110 | i2t_ASN1_OBJECT_name | call site | OBJ_nid2sn |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
1062 | 1101 | asn1_item_d2i | /src/libressl/crypto/asn1/tasn_dec.c:955 |
638 | 638 | asn1_d2i_primitive | /src/libressl/crypto/asn1/tasn_dec.c:621 |
443 | 443 | asn1_c2i | /src/libressl/crypto/asn1/tasn_dec.c:436 |
286 | 325 | asn1_item_ex_new | /src/libressl/crypto/asn1/tasn_new.c:116 |
242 | 281 | asn1_item_d2i | /src/libressl/crypto/asn1/tasn_dec.c:948 |
202 | 202 | asn1_item_free | /src/libressl/crypto/asn1/tasn_fre.c:103 |
197 | 748 | asn1_d2i_primitive_content | /src/libressl/crypto/asn1/tasn_dec.c:486 |
122 | 600 | asn1_d2i_primitive_content | /src/libressl/crypto/asn1/tasn_dec.c:479 |
86 | 9160 | asn1_parse2 | /src/libressl/crypto/asn1/asn1_par.c:271 |
86 | 9160 | asn1_parse2 | /src/libressl/crypto/asn1/asn1_par.c:314 |
86 | 9160 | asn1_parse2 | /src/libressl/crypto/asn1/asn1_par.c:340 |
46 | 243 | asn1_c2i_primitive | /src/libressl/crypto/asn1/tasn_dec.c:356 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/asn1parse.c | 1 |
/src/libressl/crypto/asn1/asn1_par.c | 3 |
/src/libressl/crypto/bio/b_print.c | 2 |
/src/libressl/crypto/bio/bio_lib.c | 4 |
/src/libressl/crypto/err/err.c | 7 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 2 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 1 |
/src/libressl/crypto/bytestring/bs_cbs.c | 14 |
/src/libressl/crypto/asn1/asn1_lib.c | 4 |
/src/libressl/crypto/asn1/asn1_types.c | 3 |
/src/libressl/crypto/asn1/a_object.c | 11 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/bytestring/bs_cbb.c | 9 |
/src/libressl/crypto/objects/obj_dat.c | 7 |
/src/libressl/crypto/lhash/lhash.c | 2 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/asn1/a_octet.c | 2 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/stack/stack.c | 9 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_string.c | 4 |
/src/libressl/crypto/asn1/tasn_utl.c | 9 |
/src/libressl/crypto/asn1/a_int.c | 10 |
/src/libressl/crypto/asn1/a_type.c | 2 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 5 |
/src/libressl/crypto/asn1/a_time_tm.c | 3 |
/src/libressl/crypto/bio/b_dump.c | 2 |
/src/libressl/crypto/compat/strlcpy.c | 1 |
/src/libressl/crypto/compat/strlcat.c | 1 |
/src/libressl/crypto/asn1/a_enum.c | 2 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 91 | 16.8% |
gold | 9 | 1.66% |
yellow | 15 | 2.78% |
greenyellow | 5 | 0.92% |
lawngreen | 419 | 77.7% |
All colors | 539 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
6 | 30 | FuzzerTestOneInput | call site | OPENSSL_showfatal |
5 | 24 | FuzzerTestOneInput | call site | ERR_put_error |
5 | 55 | asn1_d2i_read_bio | call site | ERR_put_error |
3 | 48 | recallocarray | call site | __errno_location |
3 | 138 | OBJ_bsearch_ | call site | ASN1_INTEGER_get |
3 | 257 | ASN1_primitive_new | call site | ERR_put_error |
3 | 266 | asn1_item_ex_new | call site | ASN1_item_ex_free |
3 | 431 | asn1_enc_save | call site | ERR_put_error |
2 | 40 | asn1_d2i_read_bio | call site | ERR_put_error |
2 | 52 | recallocarray | call site | ERR_put_error |
2 | 86 | asn1_d2i_read_bio | call site | ERR_put_error |
2 | 95 | ASN1_item_ex_d2i | call site | ERR_put_error |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
385 | 1035 | x509_name_ex_i2d | /src/libressl/crypto/asn1/x_name.c:354 |
211 | 220 | policy_cache_free | /src/libressl/crypto/x509/pcy_cache.c:222 |
187 | 221 | engine_table_select | /src/libressl/crypto/engine/eng_table.c:254 |
144 | 617 | EVP_DigestInit_ex | /src/libressl/crypto/evp/digest.c:152 |
88 | 109 | EVP_PKEY_free | /src/libressl/crypto/evp/p_lib.c:511 |
80 | 139 | ENGINE_finish | /src/libressl/crypto/engine/eng_init.c:137 |
69 | 108 | asn1_do_adb | /src/libressl/crypto/asn1/tasn_utl.c:270 |
52 | 361 | EVP_DigestInit_ex | /src/libressl/crypto/evp/digest.c:183 |
50 | 50 | EVP_DigestInit_ex | /src/libressl/crypto/evp/digest.c:203 |
30 | 34 | X509V3_EXT_get_nid | /src/libressl/crypto/x509/x509_lib.c:126 |
28 | 106 | BIO_read | /src/libressl/crypto/bio/bio_lib.c:337 |
28 | 106 | BIO_write | /src/libressl/crypto/bio/bio_lib.c:387 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/cms.c | 1 |
/src/libressl/crypto/bio/bss_mem.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 6 |
/src/libressl/crypto/err/err.c | 9 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 4 |
/src/libressl/crypto/ex_data.c | 3 |
/src/libressl/crypto/compat/getprogname_linux.c | 1 |
/src/libressl/crypto/compat/syslog_r.c | 1 |
/src/libressl/crypto/cms/cms_io.c | 2 |
/src/libressl/crypto/asn1/asn1_item.c | 3 |
/src/libressl/crypto/buffer/buffer.c | 3 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 5 |
/src/libressl/crypto/bytestring/bs_cbs.c | 14 |
/src/libressl/crypto/asn1/asn1_lib.c | 3 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/stack/stack.c | 10 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_object.c | 4 |
/src/libressl/crypto/asn1/a_string.c | 4 |
/src/libressl/crypto/asn1/tasn_utl.c | 10 |
/src/libressl/crypto/objects/obj_dat.c | 5 |
/src/libressl/crypto/lhash/lhash.c | 2 |
/src/libressl/crypto/asn1/a_int.c | 11 |
/src/libressl/crypto/bytestring/bs_cbb.c | 7 |
/src/libressl/crypto/asn1/a_type.c | 2 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 6 |
/src/libressl/crypto/asn1/a_time_tm.c | 3 |
/src/libressl/crypto/asn1/asn1_types.c | 2 |
/src/libressl/crypto/bio/bss_null.c | 1 |
/src/libressl/crypto/asn1/tasn_enc.c | 8 |
/src/libressl/crypto/cms/cms_lib.c | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 1018 | 41.1% |
gold | 491 | 19.8% |
yellow | 9 | 0.36% |
greenyellow | 21 | 0.84% |
lawngreen | 936 | 37.8% |
All colors | 2475 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
130 | 281 | CRYPTO_free_ex_data | call site | OPENSSL_init_crypto |
55 | 413 | get_error_values | call site | ERR_load_crypto_strings |
51 | 2073 | PEM_bytes_read_bio | call site | PEM_def_callback |
41 | 232 | ERR_clear_error | call site | ENGINE_by_id |
40 | 2199 | PEM_read_bio_PrivateKey | call site | PKCS8_decrypt |
38 | 2160 | PEM_read_bio_PrivateKey | call site | d2i_PKCS8_PRIV_KEY_INFO |
33 | 159 | ASN1_OBJECT_free | call site | int_engine_configure |
33 | 1820 | cbs_get_u | call site | IPAddressFamily_afi_length |
28 | 203 | ERR_asprintf_error_data | call site | ENGINE_ctrl_cmd_string |
22 | 1784 | setup_crldp | call site | setup_dp |
21 | 2336 | SSL_new | call site | X509_VERIFY_PARAM_set1_policies |
17 | 1609 | ENGINE_get_pkey_asn1_meth_engine | call site | ENGINE_finish |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
45987 | 98027 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:185 |
45987 | 98023 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:190 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:316 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:379 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:402 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:407 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:431 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:462 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:489 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:528 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:543 |
45987 | 97532 | ssl3_accept | /src/libressl/ssl/ssl_srvr.c:549 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/server.c | 1 |
/src/libressl/ssl/ssl_methods.c | 1 |
/src/libressl/ssl/ssl_lib.c | 15 |
/src/libressl/ssl/ssl_init.c | 2 |
/usr/include/pthread.h | 1 |
/src/libressl/crypto/crypto_init.c | 2 |
/src/libressl/crypto/cryptlib.c | 7 |
/src/libressl/crypto/err/err_all.c | 2 |
/src/libressl/crypto/err/err.c | 19 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/compat/strlcpy.c | 1 |
/src/libressl/crypto/asn1/asn1_err.c | 1 |
/src/libressl/crypto/conf/conf_sap.c | 4 |
/src/libressl/crypto/conf/conf_mall.c | 1 |
/src/libressl/crypto/asn1/asn_moid.c | 3 |
/src/libressl/crypto/conf/conf_mod.c | 10 |
/src/libressl/crypto/stack/stack.c | 17 |
/src/libressl/crypto/conf/conf_lib.c | 6 |
/src/libressl/crypto/conf/conf_api.c | 3 |
/src/libressl/crypto/lhash/lhash.c | 12 |
/src/libressl/crypto/objects/obj_dat.c | 14 |
/src/libressl/crypto/asn1/a_object.c | 16 |
/src/libressl/crypto/bytestring/bs_cbs.c | 16 |
/src/libressl/crypto/bytestring/bs_cbb.c | 9 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/objects/obj_lib.c | 2 |
/src/libressl/crypto/engine/eng_cnf.c | 5 |
/src/libressl/crypto/engine/eng_list.c | 3 |
/src/libressl/crypto/engine/eng_lib.c | 6 |
/src/libressl/crypto/ex_data.c | 4 |
/src/libressl/crypto/engine/eng_ctrl.c | 7 |
/src/libressl/crypto/engine/eng_init.c | 4 |
/src/libressl/crypto/engine/tb_pkmeth.c | 4 |
/src/libressl/crypto/evp/pmeth_lib.c | 7 |
/src/libressl/crypto/engine/tb_asnmth.c | 8 |
/src/libressl/crypto/asn1/ameth_lib.c | 9 |
/src/libressl/crypto/engine/eng_fat.c | 5 |
/src/libressl/crypto/engine/tb_cipher.c | 6 |
/src/libressl/crypto/engine/eng_table.c | 11 |
/src/libressl/crypto/engine/tb_digest.c | 6 |
/src/libressl/crypto/engine/tb_rsa.c | 3 |
/src/libressl/crypto/engine/tb_dsa.c | 3 |
/src/libressl/crypto/engine/tb_dh.c | 3 |
/src/libressl/crypto/engine/tb_ecdh.c | 3 |
/src/libressl/crypto/engine/tb_ecdsa.c | 3 |
/src/libressl/crypto/engine/tb_eckey.c | 3 |
/src/libressl/crypto/engine/tb_rand.c | 3 |
/src/libressl/crypto/engine/eng_all.c | 2 |
/src/libressl/crypto/conf/conf_def.c | 1 |
/src/libressl/crypto/x509/x509_def.c | 1 |
/src/libressl/crypto/dso/dso_lib.c | 6 |
/src/libressl/crypto/dso/dso_openssl.c | 1 |
/src/libressl/crypto/dso/dso_null.c | 1 |
/src/libressl/crypto/bio/bss_file.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 11 |
/src/libressl/crypto/bio/b_print.c | 2 |
/src/libressl/crypto/err/err_prn.c | 3 |
/src/libressl/crypto/bio/bio_err.c | 1 |
/src/libressl/crypto/bn/bn_err.c | 1 |
/src/libressl/crypto/buffer/buf_err.c | 1 |
/src/libressl/crypto/cms/cms_err.c | 1 |
/src/libressl/crypto/conf/conf_err.c | 1 |
/src/libressl/crypto/cpt_err.c | 1 |
/src/libressl/crypto/ct/ct_err.c | 1 |
/src/libressl/crypto/dh/dh_err.c | 1 |
/src/libressl/crypto/dsa/dsa_err.c | 1 |
/src/libressl/crypto/dso/dso_err.c | 1 |
/src/libressl/crypto/ecdh/ech_err.c | 1 |
/src/libressl/crypto/ecdsa/ecs_err.c | 1 |
/src/libressl/crypto/ec/ec_err.c | 1 |
/src/libressl/crypto/engine/eng_err.c | 1 |
/src/libressl/crypto/evp/evp_err.c | 1 |
/src/libressl/crypto/gost/gost_err.c | 1 |
/src/libressl/crypto/kdf/kdf_err.c | 1 |
/src/libressl/crypto/objects/obj_err.c | 1 |
/src/libressl/crypto/ocsp/ocsp_err.c | 1 |
/src/libressl/crypto/pem/pem_err.c | 1 |
/src/libressl/crypto/pkcs12/pk12err.c | 1 |
/src/libressl/crypto/pkcs7/pkcs7err.c | 1 |
/src/libressl/crypto/rand/rand_err.c | 1 |
/src/libressl/crypto/rsa/rsa_err.c | 1 |
/src/libressl/crypto/ts/ts_err.c | 1 |
/src/libressl/crypto/ui/ui_err.c | 1 |
/src/libressl/crypto/x509/x509_err.c | 2 |
/src/libressl/crypto/evp/c_all.c | 4 |
/src/libressl/crypto/evp/e_des.c | 6 |
/src/libressl/crypto/evp/names.c | 4 |
/src/libressl/crypto/objects/o_names.c | 5 |
/src/libressl/crypto/evp/e_des3.c | 10 |
/src/libressl/crypto/evp/e_xcbc_d.c | 1 |
/src/libressl/crypto/evp/e_rc4.c | 2 |
/src/libressl/crypto/evp/e_rc4_hmac_md5.c | 1 |
/src/libressl/crypto/evp/e_idea.c | 4 |
/src/libressl/crypto/evp/e_rc2.c | 6 |
/src/libressl/crypto/evp/e_bf.c | 4 |
/src/libressl/crypto/evp/e_cast.c | 4 |
/src/libressl/crypto/evp/e_aes.c | 32 |
/src/libressl/crypto/evp/e_aes_cbc_hmac_sha1.c | 2 |
/src/libressl/crypto/evp/e_camellia.c | 18 |
/src/libressl/crypto/evp/e_chacha.c | 1 |
/src/libressl/crypto/evp/e_gost2814789.c | 3 |
/src/libressl/crypto/evp/e_sm4.c | 5 |
/src/libressl/crypto/evp/m_md4.c | 1 |
/src/libressl/crypto/evp/m_md5.c | 1 |
/src/libressl/crypto/evp/m_md5_sha1.c | 1 |
/src/libressl/crypto/evp/m_sha1.c | 5 |
/src/libressl/crypto/evp/m_gostr341194.c | 1 |
/src/libressl/crypto/evp/m_gost2814789.c | 1 |
/src/libressl/crypto/evp/m_streebog.c | 2 |
/src/libressl/crypto/evp/m_ripemd.c | 1 |
/src/libressl/crypto/evp/m_sm3.c | 1 |
/src/libressl/crypto/evp/m_wp.c | 1 |
/src/libressl/ssl/ssl_err.c | 4 |
/src/libressl/ssl/ssl_algs.c | 1 |
/src/libressl/ssl/ssl_cert.c | 5 |
/src/libressl/crypto/x509/x509_vfy.c | 1 |
/src/libressl/crypto/x509/x509_lu.c | 6 |
/src/libressl/crypto/x509/x509_cmp.c | 10 |
/src/libressl/crypto/asn1/x_name.c | 5 |
/src/libressl/crypto/asn1/tasn_enc.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 6 |
/src/libressl/crypto/asn1/a_int.c | 13 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 4 |
/src/libressl/crypto/asn1/tasn_utl.c | 10 |
/src/libressl/crypto/x509/x509_vpm.c | 10 |
/src/libressl/crypto/asn1/x_x509.c | 2 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_string.c | 7 |
/src/libressl/crypto/asn1/x_crl.c | 1 |
/src/libressl/ssl/ssl_ciph.c | 10 |
/src/libressl/ssl/s3_lib.c | 4 |
/src/libressl/crypto/compat/arc4random.c | 6 |
/src/libressl/crypto/compat/arc4random_linux.h | 4 |
/src/libressl/crypto/compat/chacha_private.h | 3 |
/src/libressl/ssl/ssl_sess.c | 8 |
/src/libressl/crypto/dh/dh_lib.c | 1 |
/src/libressl/crypto/bn/bn_lib.c | 15 |
/src/libressl/crypto/evp/p_lib.c | 14 |
/src/libressl/crypto/asn1/x_attrib.c | 1 |
/src/libressl/ssl/ssl_versions.c | 4 |
/src/libressl/crypto/compat/getprogname_linux.c | 1 |
/src/libressl/crypto/compat/syslog_r.c | 1 |
/src/libressl/crypto/rsa/rsa_asn1.c | 1 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/asn1/asn1_lib.c | 2 |
/src/libressl/crypto/asn1/a_type.c | 2 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_time_tm.c | 5 |
/src/libressl/crypto/asn1/asn1_types.c | 2 |
/src/libressl/ssl/ssl_rsa.c | 4 |
/src/libressl/ssl/ssl_both.c | 2 |
/src/libressl/crypto/asn1/x_pubkey.c | 2 |
/src/libressl/crypto/rsa/rsa_crpt.c | 1 |
/src/libressl/ssl/ssl_seclevel.c | 7 |
/src/libressl/crypto/x509/x509_purp.c | 12 |
/src/libressl/crypto/x509/x_all.c | 2 |
/src/libressl/crypto/asn1/asn1_item.c | 2 |
/src/libressl/crypto/evp/digest.c | 7 |
/src/libressl/crypto/evp/evp_lib.c | 8 |
/src/libressl/crypto/x509/x509_set.c | 3 |
/src/libressl/crypto/x509/x509_ext.c | 4 |
/src/libressl/crypto/x509/x509_lib.c | 7 |
/src/libressl/crypto/x509/x509_v3.c | 6 |
/src/libressl/crypto/x509/x509_bcons.c | 1 |
/src/libressl/crypto/x509/x509_pcia.c | 1 |
/src/libressl/crypto/asn1/a_octet.c | 1 |
/src/libressl/crypto/x509/x509_crld.c | 1 |
/src/libressl/crypto/x509/x509name.c | 1 |
/src/libressl/crypto/x509/x509_addr.c | 14 |
/src/libressl/crypto/x509/x509_asid.c | 3 |
/src/libressl/crypto/bn/bn_word.c | 2 |
/src/libressl/crypto/x509/x509_verify.c | 2 |
/src/libressl/crypto/bio/bss_mem.c | 1 |
/src/libressl/crypto/pem/pem_all.c | 2 |
/src/libressl/crypto/pem/pem_pkey.c | 1 |
/src/libressl/crypto/pem/pem_lib.c | 8 |
/src/libressl/crypto/buffer/buffer.c | 4 |
/src/libressl/crypto/evp/encode.c | 5 |
/src/libressl/crypto/evp/evp_key.c | 3 |
/src/libressl/crypto/ui/ui_lib.c | 12 |
/src/libressl/crypto/ui/ui_openssl.c | 1 |
/src/libressl/crypto/evp/evp_enc.c | 12 |
/src/libressl/crypto/asn1/p8_pkey.c | 3 |
/src/libressl/crypto/evp/evp_pkey.c | 1 |
/src/libressl/crypto/asn1/x_sig.c | 2 |
/src/libressl/crypto/pkcs12/p12_p8d.c | 1 |
/src/libressl/crypto/pkcs12/p12_decr.c | 2 |
/src/libressl/crypto/evp/evp_pbe.c | 5 |
/src/libressl/crypto/asn1/a_pkey.c | 1 |
/src/libressl/crypto/ec/ec_key.c | 2 |
/src/libressl/crypto/ec/ec_lib.c | 3 |
/src/libressl/crypto/pem/pem_x509.c | 1 |
/src/libressl/crypto/pem/pem_oth.c | 1 |
/src/libressl/ssl/tls12_record_layer.c | 7 |
/src/libressl/crypto/evp/evp_aead.c | 2 |
/src/libressl/crypto/dh/dh_asn1.c | 1 |
/src/libressl/ssl/tls13_lib.c | 1 |
/src/libressl/ssl/tls13_error.c | 1 |
/src/libressl/ssl/tls13_record_layer.c | 5 |
/src/libressl/ssl/tls13_record.c | 1 |
/src/libressl/ssl/tls_buffer.c | 2 |
/src/libressl/ssl/tls_content.c | 2 |
/src/libressl/ssl/tls13_key_schedule.c | 1 |
/src/libressl/ssl/tls13_handshake_msg.c | 1 |
/src/libressl/crypto/asn1/x_exten.c | 1 |
/src/libressl/crypto/ocsp/ocsp_asn.c | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 17 | 33.3% |
gold | 5 | 9.80% |
yellow | 0 | 0.0% |
greenyellow | 0 | 0.0% |
lawngreen | 29 | 56.8% |
All colors | 51 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
6 | 33 | FuzzerTestOneInput | call site | OPENSSL_showfatal |
5 | 27 | FuzzerTestOneInput | call site | ERR_put_error |
1 | 3 | NCONF_new | call site | ERR_put_error |
1 | 15 | ERR_get_state | call site | ERR_STATE_free |
1 | 18 | FuzzerTestOneInput | call site | ERR_put_error |
1 | 24 | impl_check | call site | CRYPTO_free_ex_data |
1 | 40 | FuzzerTestOneInput | call site | ERR_put_error |
1 | 46 | CRYPTO_add_lock | call site | bio_call_callback |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
28 | 106 | BIO_write | /src/libressl/crypto/bio/bio_lib.c:387 |
28 | 106 | BIO_gets | /src/libressl/crypto/bio/bio_lib.c:475 |
14 | 53 | BIO_write | /src/libressl/crypto/bio/bio_lib.c:403 |
14 | 53 | BIO_gets | /src/libressl/crypto/bio/bio_lib.c:489 |
14 | 30 | BIO_free | /src/libressl/crypto/bio/bio_lib.c:191 |
4 | 4 | recallocarray | /src/libressl/crypto/compat/recallocarray.c:57 |
2 | 1473 | ERR_load_ERR_strings | /src/libressl/crypto/err/err.c:675 |
2 | 4 | mem_read | /src/libressl/crypto/bio/bss_mem.c:204 |
2 | 2 | mem_read | /src/libressl/crypto/bio/bss_mem.c:207 |
0 | 99 | def_load_bio | /src/libressl/crypto/conf/conf_def.c:234 |
0 | 99 | def_load_bio | /src/libressl/crypto/conf/conf_def.c:239 |
0 | 99 | def_load_bio | /src/libressl/crypto/conf/conf_def.c:253 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/conf.c | 1 |
/src/libressl/crypto/conf/conf_lib.c | 3 |
/src/libressl/crypto/conf/conf_def.c | 1 |
/src/libressl/crypto/err/err.c | 5 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/cryptlib.c | 4 |
/src/libressl/crypto/bio/bss_mem.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 5 |
/src/libressl/crypto/ex_data.c | 3 |
/src/libressl/crypto/compat/getprogname_linux.c | 1 |
/src/libressl/crypto/compat/syslog_r.c | 1 |
The following is the call tree with color coding for which functions are hit/not hit. This info is based on the coverage achieved of all fuzzers together and not just this specific fuzzer. We use the following coloring scheme where min/max is an interval [min:max) (max non-inclusive) to color the callsite based on how many times the callsite is covered at run time.
Min | Max | Color |
---|---|---|
0 | 1 | red |
1 | 10 | gold |
10 | 30 | yellow |
30 | 50 | greenyellow |
50 | 1000000000000 | lawngreen |
For further technical details on the call tree overview, please see the Glossary .
The distribution of callsites in terms of coloring is
Color | Callsite count | Percentage |
---|---|---|
red | 1080 | 40.2% |
gold | 496 | 18.5% |
yellow | 30 | 1.11% |
greenyellow | 19 | 0.70% |
lawngreen | 1056 | 39.3% |
All colors | 2681 | 100 |
The following link provides a visualisation of the full call tree overlaid with coverage information: full call tree
For further technical details on how the call tree is generated, please see the Glossary .
The followings nodes represent call sites where fuzz blockers occur.
Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
---|---|---|---|---|
130 | 281 | CRYPTO_free_ex_data | call site | OPENSSL_init_crypto |
55 | 413 | get_error_values | call site | ERR_load_crypto_strings |
45 | 2173 | OBJ_NAME_get | call site | SSL_set1_chain |
41 | 232 | ERR_clear_error | call site | ENGINE_by_id |
34 | 2416 | EC_GROUP_copy | call site | EVP_PKEY_set1_EC_KEY |
33 | 159 | ASN1_OBJECT_free | call site | int_engine_configure |
28 | 203 | ERR_asprintf_error_data | call site | ENGINE_ctrl_cmd_string |
28 | 1755 | SSL_ctrl | call site | dtls1_do_write |
26 | 2048 | X509v3_addr_is_canonical | call site | IPAddressFamily_afi_length |
23 | 470 | BIO_set | call site | ERR_print_errors_cb |
22 | 1625 | SSL_new | call site | X509_VERIFY_PARAM_set1_policies |
19 | 1829 | _SSL_set_tlsext_host_name | call site | SSL_set0_chain |
[EXPERIMENTAL] The followings are the branches where fuzzer fails to bypass.
Blocked Complexity | Reachable Complexity | Function Name | Blocked Branch |
---|---|---|---|
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:299 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:310 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:336 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:351 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:394 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:408 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:419 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:440 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:447 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:470 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:493 |
17067 | 67784 | ssl3_connect | /src/libressl/ssl/ssl_clnt.c:538 |
Function name | source code lines | source lines hit | percentage hit |
---|
filename | functions hit |
---|---|
/src/libressl.fuzzers/driver.c | 1 |
/src/libressl.fuzzers/client.c | 1 |
/src/libressl/ssl/ssl_methods.c | 1 |
/src/libressl/ssl/ssl_lib.c | 26 |
/src/libressl/ssl/ssl_init.c | 2 |
/usr/include/pthread.h | 1 |
/src/libressl/crypto/crypto_init.c | 2 |
/src/libressl/crypto/cryptlib.c | 7 |
/src/libressl/crypto/err/err_all.c | 2 |
/src/libressl/crypto/err/err.c | 18 |
/src/libressl/crypto/crypto_lock.c | 2 |
/src/libressl/crypto/compat/strlcpy.c | 1 |
/src/libressl/crypto/asn1/asn1_err.c | 1 |
/src/libressl/crypto/conf/conf_sap.c | 4 |
/src/libressl/crypto/conf/conf_mall.c | 1 |
/src/libressl/crypto/asn1/asn_moid.c | 3 |
/src/libressl/crypto/conf/conf_mod.c | 10 |
/src/libressl/crypto/stack/stack.c | 17 |
/src/libressl/crypto/conf/conf_lib.c | 6 |
/src/libressl/crypto/conf/conf_api.c | 3 |
/src/libressl/crypto/lhash/lhash.c | 12 |
/src/libressl/crypto/objects/obj_dat.c | 18 |
/src/libressl/crypto/asn1/a_object.c | 9 |
/src/libressl/crypto/bytestring/bs_cbs.c | 19 |
/src/libressl/crypto/bytestring/bs_cbb.c | 15 |
/src/libressl/crypto/compat/recallocarray.c | 1 |
/src/libressl/crypto/compat/freezero.c | 1 |
/src/libressl/crypto/objects/obj_lib.c | 2 |
/src/libressl/crypto/engine/eng_cnf.c | 5 |
/src/libressl/crypto/engine/eng_list.c | 3 |
/src/libressl/crypto/engine/eng_lib.c | 6 |
/src/libressl/crypto/ex_data.c | 4 |
/src/libressl/crypto/engine/eng_ctrl.c | 7 |
/src/libressl/crypto/engine/eng_init.c | 4 |
/src/libressl/crypto/engine/tb_pkmeth.c | 4 |
/src/libressl/crypto/evp/pmeth_lib.c | 8 |
/src/libressl/crypto/engine/tb_asnmth.c | 8 |
/src/libressl/crypto/asn1/ameth_lib.c | 9 |
/src/libressl/crypto/engine/eng_fat.c | 5 |
/src/libressl/crypto/engine/tb_cipher.c | 3 |
/src/libressl/crypto/engine/eng_table.c | 11 |
/src/libressl/crypto/engine/tb_digest.c | 6 |
/src/libressl/crypto/engine/tb_rsa.c | 3 |
/src/libressl/crypto/engine/tb_dsa.c | 3 |
/src/libressl/crypto/engine/tb_dh.c | 3 |
/src/libressl/crypto/engine/tb_ecdh.c | 3 |
/src/libressl/crypto/engine/tb_ecdsa.c | 3 |
/src/libressl/crypto/engine/tb_eckey.c | 5 |
/src/libressl/crypto/engine/tb_rand.c | 3 |
/src/libressl/crypto/engine/eng_all.c | 2 |
/src/libressl/crypto/conf/conf_def.c | 1 |
/src/libressl/crypto/x509/x509_def.c | 1 |
/src/libressl/crypto/dso/dso_lib.c | 6 |
/src/libressl/crypto/dso/dso_openssl.c | 1 |
/src/libressl/crypto/dso/dso_null.c | 1 |
/src/libressl/crypto/bio/bss_file.c | 1 |
/src/libressl/crypto/bio/bio_lib.c | 10 |
/src/libressl/crypto/bio/b_print.c | 2 |
/src/libressl/crypto/err/err_prn.c | 2 |
/src/libressl/crypto/bio/bio_err.c | 1 |
/src/libressl/crypto/bn/bn_err.c | 1 |
/src/libressl/crypto/buffer/buf_err.c | 1 |
/src/libressl/crypto/cms/cms_err.c | 1 |
/src/libressl/crypto/conf/conf_err.c | 1 |
/src/libressl/crypto/cpt_err.c | 1 |
/src/libressl/crypto/ct/ct_err.c | 1 |
/src/libressl/crypto/dh/dh_err.c | 1 |
/src/libressl/crypto/dsa/dsa_err.c | 1 |
/src/libressl/crypto/dso/dso_err.c | 1 |
/src/libressl/crypto/ecdh/ech_err.c | 1 |
/src/libressl/crypto/ecdsa/ecs_err.c | 1 |
/src/libressl/crypto/ec/ec_err.c | 1 |
/src/libressl/crypto/engine/eng_err.c | 1 |
/src/libressl/crypto/evp/evp_err.c | 1 |
/src/libressl/crypto/gost/gost_err.c | 1 |
/src/libressl/crypto/kdf/kdf_err.c | 1 |
/src/libressl/crypto/objects/obj_err.c | 1 |
/src/libressl/crypto/ocsp/ocsp_err.c | 1 |
/src/libressl/crypto/pem/pem_err.c | 1 |
/src/libressl/crypto/pkcs12/pk12err.c | 1 |
/src/libressl/crypto/pkcs7/pkcs7err.c | 1 |
/src/libressl/crypto/rand/rand_err.c | 1 |
/src/libressl/crypto/rsa/rsa_err.c | 1 |
/src/libressl/crypto/ts/ts_err.c | 1 |
/src/libressl/crypto/ui/ui_err.c | 1 |
/src/libressl/crypto/x509/x509_err.c | 2 |
/src/libressl/crypto/evp/c_all.c | 4 |
/src/libressl/crypto/evp/e_des.c | 6 |
/src/libressl/crypto/evp/names.c | 3 |
/src/libressl/crypto/objects/o_names.c | 5 |
/src/libressl/crypto/evp/e_des3.c | 10 |
/src/libressl/crypto/evp/e_xcbc_d.c | 1 |
/src/libressl/crypto/evp/e_rc4.c | 2 |
/src/libressl/crypto/evp/e_rc4_hmac_md5.c | 1 |
/src/libressl/crypto/evp/e_idea.c | 4 |
/src/libressl/crypto/evp/e_rc2.c | 6 |
/src/libressl/crypto/evp/e_bf.c | 4 |
/src/libressl/crypto/evp/e_cast.c | 4 |
/src/libressl/crypto/evp/e_aes.c | 32 |
/src/libressl/crypto/evp/e_aes_cbc_hmac_sha1.c | 2 |
/src/libressl/crypto/evp/e_camellia.c | 18 |
/src/libressl/crypto/evp/e_chacha.c | 1 |
/src/libressl/crypto/evp/e_gost2814789.c | 3 |
/src/libressl/crypto/evp/e_sm4.c | 5 |
/src/libressl/crypto/evp/m_md4.c | 1 |
/src/libressl/crypto/evp/m_md5.c | 1 |
/src/libressl/crypto/evp/m_md5_sha1.c | 1 |
/src/libressl/crypto/evp/m_sha1.c | 5 |
/src/libressl/crypto/evp/m_gostr341194.c | 1 |
/src/libressl/crypto/evp/m_gost2814789.c | 1 |
/src/libressl/crypto/evp/m_streebog.c | 2 |
/src/libressl/crypto/evp/m_ripemd.c | 1 |
/src/libressl/crypto/evp/m_sm3.c | 1 |
/src/libressl/crypto/evp/m_wp.c | 1 |
/src/libressl/ssl/ssl_err.c | 4 |
/src/libressl/ssl/ssl_algs.c | 1 |
/src/libressl/ssl/ssl_cert.c | 9 |
/src/libressl/crypto/x509/x509_vfy.c | 1 |
/src/libressl/crypto/x509/x509_lu.c | 6 |
/src/libressl/crypto/x509/x509_cmp.c | 8 |
/src/libressl/crypto/asn1/x_name.c | 5 |
/src/libressl/crypto/asn1/tasn_enc.c | 8 |
/src/libressl/crypto/asn1/a_bitstr.c | 6 |
/src/libressl/crypto/asn1/a_int.c | 13 |
/src/libressl/crypto/asn1/asn1_old_lib.c | 4 |
/src/libressl/crypto/asn1/tasn_utl.c | 10 |
/src/libressl/crypto/x509/x509_vpm.c | 10 |
/src/libressl/crypto/asn1/x_x509.c | 2 |
/src/libressl/crypto/asn1/tasn_fre.c | 5 |
/src/libressl/crypto/asn1/a_string.c | 5 |
/src/libressl/crypto/asn1/x_crl.c | 1 |
/src/libressl/ssl/ssl_ciph.c | 10 |
/src/libressl/ssl/s3_lib.c | 32 |
/src/libressl/crypto/compat/arc4random.c | 6 |
/src/libressl/crypto/compat/arc4random_linux.h | 4 |
/src/libressl/crypto/compat/chacha_private.h | 3 |
/src/libressl/ssl/ssl_sess.c | 8 |
/src/libressl/crypto/dh/dh_lib.c | 3 |
/src/libressl/crypto/bn/bn_lib.c | 21 |
/src/libressl/crypto/evp/p_lib.c | 11 |
/src/libressl/crypto/asn1/x_attrib.c | 1 |
/src/libressl/ssl/tls12_record_layer.c | 26 |
/src/libressl/crypto/evp/evp_aead.c | 4 |
/src/libressl/crypto/evp/evp_enc.c | 2 |
/src/libressl/crypto/evp/digest.c | 10 |
/src/libressl/crypto/evp/evp_lib.c | 9 |
/src/libressl/crypto/dh/dh_asn1.c | 1 |
/src/libressl/crypto/asn1/asn1_item.c | 2 |
/src/libressl/crypto/asn1/tasn_dec.c | 21 |
/src/libressl/crypto/asn1/asn1_lib.c | 2 |
/src/libressl/crypto/asn1/a_type.c | 2 |
/src/libressl/crypto/asn1/tasn_new.c | 8 |
/src/libressl/crypto/asn1/a_time_tm.c | 5 |
/src/libressl/crypto/asn1/asn1_types.c | 2 |
/src/libressl/crypto/x509/x_all.c | 2 |
/src/libressl/crypto/compat/getprogname_linux.c | 1 |
/src/libressl/crypto/compat/syslog_r.c | 1 |
/src/libressl/ssl/tls13_lib.c | 1 |
/src/libressl/ssl/tls13_error.c | 1 |
/src/libressl/ssl/tls13_record_layer.c | 5 |
/src/libressl/ssl/tls13_record.c | 1 |
/src/libressl/ssl/tls_buffer.c | 6 |
/src/libressl/ssl/tls_content.c | 2 |
/src/libressl/ssl/tls13_key_schedule.c | 1 |
/src/libressl/ssl/tls13_handshake_msg.c | 1 |
/src/libressl/ssl/ssl_both.c | 4 |
/src/libressl/crypto/buffer/buffer.c | 1 |
/src/libressl/crypto/asn1/x_exten.c | 1 |
/src/libressl/crypto/ocsp/ocsp_asn.c | 1 |
/src/libressl/ssl/ssl_versions.c | 5 |
/src/libressl/ssl/d1_both.c | 9 |
/src/libressl/ssl/d1_lib.c | 8 |
/src/libressl/ssl/pqueue.c | 4 |
/src/libressl/ssl/ssl_seclevel.c | 9 |
/src/libressl/crypto/ec/ec_key.c | 5 |
/src/libressl/crypto/ec/ec_lib.c | 20 |
/src/libressl/ssl/t1_lib.c | 3 |
/src/libressl/ssl/ssl_tlsext.c | 2 |
/src/libressl/crypto/asn1/x_pubkey.c | 1 |
/src/libressl/crypto/x509/x509_purp.c | 12 |
/src/libressl/crypto/x509/x509_set.c | 3 |
/src/libressl/crypto/x509/x509_ext.c | 4 |
/src/libressl/crypto/x509/x509_lib.c | 7 |
/src/libressl/crypto/x509/x509_v3.c | 6 |
/src/libressl/crypto/x509/x509_bcons.c | 1 |
/src/libressl/crypto/x509/x509_pcia.c | 1 |
/src/libressl/crypto/asn1/a_octet.c | 1 |
/src/libressl/crypto/x509/x509_crld.c | 1 |
/src/libressl/crypto/x509/x509name.c | 1 |
/src/libressl/crypto/x509/x509_addr.c | 14 |
/src/libressl/crypto/x509/x509_asid.c | 3 |
/src/libressl/crypto/bn/bn_word.c | 2 |
/src/libressl/crypto/x509/x509_verify.c | 2 |
/src/libressl/crypto/objects/obj_xref.c | 4 |
/src/libressl/crypto/ec/ec_curve.c | 3 |
/src/libressl/ssl/tls_key_share.c | 1 |
/src/libressl/ssl/ssl_kex.c | 1 |
/src/libressl/crypto/bn/bn_ctx.c | 13 |
/src/libressl/crypto/ec/ec_cvt.c | 2 |
/src/libressl/crypto/ec/ecp_mont.c | 1 |
/src/libressl/crypto/ec/ec2_smpl.c | 1 |
/src/libressl/crypto/bn/bn_shift.c | 3 |
/src/libressl/crypto/bn/bn_add.c | 3 |
/src/libressl/crypto/bn/bn_asm.c | 3 |
/src/libressl/crypto/bn/bn_div.c | 2 |
/src/libressl/crypto/ec/ec_kmeth.c | 2 |
/src/libressl/ssl/d1_pkt.c | 2 |
/src/libressl/ssl/ssl_pkt.c | 4 |
/src/libressl/crypto/evp/m_sigver.c | 1 |
/src/libressl/crypto/evp/pmeth_fn.c | 1 |
/src/libressl/crypto/compat/timingsafe_memcmp.c | 1 |
/src/libressl/ssl/ssl_transcript.c | 3 |
/src/libressl/crypto/bio/bss_mem.c | 1 |
The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.
Func name | Functions filename | Arg count | Args | Function depth | hitcount | instr count | bb count | cyclomatic complexity | Reachable functions | Incoming references | total cyclomatic complexity | Unreached complexity |
---|---|---|---|---|---|---|---|---|---|---|---|---|
LLVMFuzzerCustomMutator
|
/src/cryptofuzz/mutator.cpp | 4 | ['char *', 'size_t ', 'size_t ', 'int '] | 17 | 0 | 29700 | 6679 | 4370 | 668 | 0 | 7981 | 7779 |
ssl3_accept
|
/src/libressl/ssl/ssl_srvr.c | 1 | ['struct.ssl_st.82 *'] | 37 | 0 | 1472 | 266 | 85 | 1675 | 1 | 10453 | 4150 |
setOptions(int,char**)
|
/src/cryptofuzz/entry.cpp | 2 | ['int ', 'char **'] | 20 | 0 | 106 | 21 | 15 | 474 | 0 | 3200 | 2197 |
nlohmann::detail::parser
|
/src/cryptofuzz/include/cryptofuzz/../../third_party/json/json.hpp | 3 | ['class.nlohmann::detail::parser *', 'N/A', 'class.nlohmann::basic_json *'] | 7 | 0 | 322 | 67 | 59 | 95 | 0 | 1003 | 806 |
ssl3_connect
|
/src/libressl/ssl/ssl_clnt.c | 1 | ['struct.ssl_st.82 *'] | 33 | 0 | 1282 | 234 | 73 | 1650 | 1 | 10083 | 708 |
Implementing fuzzers that target the above functions will improve reachability such that it becomes:
If you implement fuzzers for these functions, the status of all functions in the project will be:
Func name | Functions filename | Args | Function call depth | Reached by Fuzzers | Fuzzers runtime hit | Func lines hit % | I Count | BB Count | Cyclomatic complexity | Functions reached | Reached by functions | Accumulated cyclomatic complexity | Undiscovered complexity |
---|
This section shows analysis of runtime coverage data.
For futher technical details on how this section is generated, please see the Glossary .
Func name | Function total lines | Lines covered at runtime | percentage covered | Reached by fuzzers |
---|---|---|---|---|
i2c_ASN1_BIT_STRING | 56 | 25 | 44.64% | ['x509', 'asn1', 'crl', 'cms', 'server', 'client'] |
ASN1_mbstring_ncopy | 161 | 74 | 45.96% | [] |
c2a_ASN1_OBJECT | 31 | 17 | 54.83% | ['x509', 'asn1', 'crl', 'asn1parse', 'server'] |
ASN1_STRING_set | 33 | 13 | 39.39% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
ASN1_STRING_to_UTF8 | 35 | 19 | 54.28% | [] |
tm_to_gentime | 37 | 16 | 43.24% | [] |
asn1_get_identifier_cbs | 52 | 28 | 53.84% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
asn1_get_length_cbs | 57 | 30 | 52.63% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
X509_CERT_AUX_print | 49 | 6 | 12.24% | ['x509'] |
asn1_item_d2i_choice | 90 | 49 | 54.44% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
asn1_i2d_ex_primitive | 55 | 29 | 52.72% | ['x509', 'asn1', 'crl', 'cms', 'server', 'client'] |
asn1_do_adb | 57 | 19 | 33.33% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
BIO_write | 47 | 21 | 44.68% | ['x509', 'asn1', 'bndiv', 'bignum', 'crl', 'asn1parse', 'cms', 'server', 'conf', 'client'] |
BIO_puts | 41 | 18 | 43.90% | ['x509', 'asn1', 'crl', 'asn1parse'] |
BN_div_internal | 258 | 131 | 50.77% | ['asn1', 'bndiv', 'bignum', 'client'] |
BN_mod_exp_internal | 50 | 17 | 34.0% | ['asn1', 'bignum'] |
BN_mod_inverse_internal | 288 | 133 | 46.18% | ['asn1', 'bignum'] |
BN_mod_inverse_no_branch | 162 | 69 | 42.59% | ['asn1', 'bignum'] |
BN_kronecker | 131 | 51 | 38.93% | ['asn1'] |
bn_expand2 | 37 | 13 | 35.13% | ['asn1', 'bndiv', 'bignum', 'server', 'client'] |
BN_from_montgomery | 45 | 10 | 22.22% | ['asn1', 'bignum'] |
BN_MONT_CTX_set | 130 | 48 | 36.92% | ['asn1', 'bignum'] |
BN_mul | 158 | 86 | 54.43% | ['asn1', 'bndiv', 'bignum'] |
bnrand | 73 | 39 | 53.42% | ['asn1'] |
bn_rand_range | 57 | 30 | 52.63% | [] |
BN_mod_sqrt | 341 | 130 | 38.12% | ['asn1'] |
CBB_flush | 87 | 45 | 51.72% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
recallocarray | 49 | 26 | 53.06% | ['x509', 'asn1', 'crl', 'asn1parse', 'cms', 'server', 'client'] |
o2i_SCT_signature | 44 | 24 | 54.54% | [] |
dh_pub_decode | 49 | 26 | 53.06% | [] |
DH_new_method | 57 | 29 | 50.87% | [] |
DSA_new_method | 57 | 26 | 45.61% | [] |
ec_GF2m_simple_group_set_curve | 31 | 17 | 54.83% | [] |
ec_asn1_parameters2group | 209 | 82 | 39.23% | ['asn1'] |
ec_group_new_from_data | 94 | 51 | 54.25% | ['asn1', 'client'] |
EC_GROUP_new_curve_GFp | 66 | 18 | 27.27% | ['asn1', 'client'] |
EC_KEY_new_method | 46 | 22 | 47.82% | ['asn1', 'client'] |
EC_GROUP_new | 37 | 19 | 51.35% | ['asn1', 'client'] |
EC_GROUP_copy | 65 | 32 | 49.23% | ['client'] |
EC_GROUP_set_generator | 58 | 27 | 46.55% | ['asn1', 'client'] |
EC_POINT_mul | 44 | 16 | 36.36% | ['asn1'] |
EC_POINT_set_compressed_coordinates | 34 | 13 | 38.23% | ['asn1'] |
ec_GFp_simple_set_compressed_coordinates | 126 | 63 | 50.0% | ['asn1'] |
ec_GFp_simple_group_set_curve | 52 | 25 | 48.07% | [] |
ec_GFp_simple_add | 185 | 95 | 51.35% | [] |
ec_GFp_simple_dbl | 138 | 69 | 50.0% | [] |
ec_GFp_simple_is_on_curve | 99 | 35 | 35.35% | [] |
ec_GFp_simple_blind_coordinates | 48 | 21 | 43.75% | [] |
ec_GFp_simple_mul_ct | 186 | 64 | 34.40% | [] |
engine_table_select | 86 | 7 | 8.139% | ['x509', 'asn1', 'crl', 'server', 'client'] |
ERR_error_string_n | 52 | 20 | 38.46% | ['x509'] |
GOST_KEY_check_key | 66 | 23 | 34.84% | [] |
GOST_KEY_set_public_key_affine_coordinates | 50 | 26 | 52.0% | [] |
OPENSSL_gmtime_adj | 55 | 28 | 50.90% | [] |
OBJ_NAME_add | 43 | 22 | 51.16% | ['x509', 'asn1', 'server', 'client'] |
OBJ_dup | 51 | 22 | 43.13% | ['x509', 'server', 'client'] |
RSA_new_method | 50 | 17 | 34.0% | [] |
i2r_ASIdentifierChoice | 45 | 5 | 11.11% | [] |
i2r_ocsp_crlid | 31 | 7 | 22.58% | [] |
X509V3_add_value | 34 | 14 | 41.17% | ['asn1'] |
d2i_ASN1_OBJECT | 36 | 19 | 52.77% | ['x509', 'asn1', 'crl', 'asn1parse'] |
file_ctrl | 83 | 15 | 18.07% | [] |
BN_div_recp | 91 | 49 | 53.84% | ['asn1', 'bignum'] |
bn_sqr_recursive | 81 | 44 | 54.32% | ['asn1', 'bignum'] |
CBB_add_asn1_uint64 | 50 | 18 | 36.0% | [] |
cbs_get_any_asn1_element_internal | 82 | 40 | 48.78% | ['asn1'] |
old_dsa_priv_decode | 89 | 38 | 42.69% | [] |
eckey_priv_decode | 64 | 25 | 39.06% | [] |
ec_asn1_group2parameters | 92 | 44 | 47.82% | [] |
ec_asn1_group2fieldid | 113 | 20 | 17.69% | [] |
ec_asn1_group2curve | 92 | 46 | 50.0% | [] |
ec_guess_cofactor | 62 | 28 | 45.16% | ['asn1', 'client'] |
EVP_DigestInit_ex | 78 | 35 | 44.87% |