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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1591 3190 5 :

['CRYPTO_free', 'CRYPTO_FREE_REF.9603', 'EVP_RAND_free', 'CRYPTO_DOWN_REF.9602', 'EVP_RAND_CTX_free']

1591 3190 EVP_RAND_CTX_free call site: 00000 /src/openssl/crypto/evp/evp_rand.c:390
1587 1587 1 :

['ossl_rand_crng_ctx_free']

1587 1625 context_deinit_objs call site: 00000 /src/openssl/crypto/context.c:331
43 48 6 :

['lh_OBJ_NAME_set_down_load', 'lh_OBJ_NAME_free', 'CRYPTO_THREAD_lock_free', 'sk_NAME_FUNCS_pop_free', 'lh_OBJ_NAME_doall', 'lh_OBJ_NAME_get_down_load']

43 48 OBJ_NAME_cleanup call site: 00000 /src/openssl/crypto/objects/o_names.c:371
37 37 2 :

['ossl_strtouint64', 'ossl_strchr']

41 41 OPENSSL_cpuid_setup call site: 00000 /src/openssl/crypto/cpuid.c:106
14 14 1 :

['async_deinit']

14 4964 OPENSSL_cleanup call site: 00000 /src/openssl/crypto/init.c:407
14 14 2 :

['qsort', 'CRYPTO_get_ex_data']

14 19 CRYPTO_free_ex_data call site: 00038 /src/openssl/crypto/ex_data.c:398
6 6 2 :

['sk_EX_CALLBACK_value', 'CRYPTO_malloc']

20 30 CRYPTO_free_ex_data call site: 00036 /src/openssl/crypto/ex_data.c:385
6 6 2 :

['sk_EX_CALLBACK_value', 'CRYPTO_malloc']

18 23 ossl_crypto_new_ex_data_ex call site: 00022 /src/openssl/crypto/ex_data.c:239
6 6 1 :

['sk_EX_CALLBACK_value']

6 11 ossl_crypto_free_ex_index_ex call site: 00000 /src/openssl/crypto/ex_data.c:127
0 1651 1 :

['ossl_provider_store_free']

0 1651 ossl_provider_store_new call site: 00000 /src/openssl/crypto/provider_core.c:312
0 292 2 :

['sk_reserve', 'OPENSSL_sk_free']

0 292 OPENSSL_sk_new_reserve call site: 00000 /src/openssl/crypto/stack/stack.c:235
0 261 3 :

['ERR_set_debug', 'ERR_new', 'ERR_set_error']

0 261 BIO_puts call site: 00092 /src/openssl/crypto/bio/bio_lib.c:536

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 FuzzerTestOneInput [function] [call site] 00001
2 BIO_new [function] [call site] 00002
3 BIO_new_ex [function] [call site] 00003
4 CRYPTO_NEW_REF [function] [call site] 00004
4 CRYPTO_new_ex_data [function] [call site] 00005
5 ossl_crypto_new_ex_data_ex [function] [call site] 00006
6 ossl_lib_ctx_get_ex_data_global [function] [call site] 00007
7 ossl_lib_ctx_get_concrete [function] [call site] 00008
8 get_default_context [function] [call site] 00009
9 get_thread_default_context [function] [call site] 00010
10 CRYPTO_THREAD_get_local [function] [call site] 00011
11 pthread_getspecific [call site] 00012
6 get_and_lock [function] [call site] 00013
7 ERR_new [function] [call site] 00014
8 err_get_slot [function] [call site] 00015
8 err_clear [function] [call site] 00016
9 err_clear_data [function] [call site] 00017
7 CRYPTO_THREAD_read_lock [function] [call site] 00018
8 pthread_rwlock_rdlock [call site] 00019
7 CRYPTO_THREAD_write_lock [function] [call site] 00020
8 pthread_rwlock_wrlock [call site] 00021
6 sk_EX_CALLBACK_num [function] [call site] 00022
7 OPENSSL_sk_num [function] [call site] 00023
6 sk_EX_CALLBACK_value [function] [call site] 00024
6 CRYPTO_THREAD_unlock [function] [call site] 00025
7 pthread_rwlock_unlock [call site] 00026
6 CRYPTO_get_ex_data [function] [call site] 00027
7 ossl_check_const_void_sk_type [function] [call site] 00028
7 OPENSSL_sk_num [function] [call site] 00029
7 ossl_check_const_void_sk_type [function] [call site] 00030
7 OPENSSL_sk_value [function] [call site] 00031
4 CRYPTO_free_ex_data [function] [call site] 00033
5 ossl_lib_ctx_get_ex_data_global [function] [call site] 00034
5 get_and_lock [function] [call site] 00035
5 sk_EX_CALLBACK_num [function] [call site] 00036
5 sk_EX_CALLBACK_value [function] [call site] 00037
5 CRYPTO_THREAD_unlock [function] [call site] 00038
5 qsort [call site] 00039
5 ex_callback_compare [function] [call site] 00040
5 CRYPTO_get_ex_data [function] [call site] 00041
5 ossl_check_void_sk_type [function] [call site] 00042
5 OPENSSL_sk_free [function] [call site] 00043
4 CRYPTO_FREE_REF [function] [call site] 00044
2 BIO_write [function] [call site] 00045
3 bio_write_intern [function] [call site] 00046
4 bio_call_callback [function] [call site] 00048
4 bio_call_callback [function] [call site] 00050
2 PEM_read_bio_ex [function] [call site] 00051
3 get_name [function] [call site] 00056
4 pem_malloc [function] [call site] 00057
4 BIO_gets [function] [call site] 00058
5 bio_call_callback [function] [call site] 00062
5 bio_call_callback [function] [call site] 00064
4 sanitize_line [function] [call site] 00066
5 memcmp [call site] 00067
5 ossl_ctype_check [function] [call site] 00068
5 ossl_ctype_check [function] [call site] 00069
4 strncmp [call site] 00070
4 pem_malloc [function] [call site] 00071
3 get_header_and_data [function] [call site] 00073
4 pem_malloc [function] [call site] 00074
4 memchr [call site] 00077
4 strncmp [call site] 00078
4 sanitize_line [function] [call site] 00079
4 strncmp [call site] 00081
4 strlen [call site] 00082
4 strncmp [call site] 00083
4 strncmp [call site] 00084
4 BIO_puts [function] [call site] 00087
5 bio_call_callback [function] [call site] 00090
5 bio_call_callback [function] [call site] 00092
3 BIO_ctrl [function] [call site] 00095
4 bio_call_callback [function] [call site] 00097
4 bio_call_callback [function] [call site] 00098
3 EVP_ENCODE_CTX_new [function] [call site] 00099
3 EVP_DecodeInit [function] [call site] 00101
3 EVP_DecodeUpdate [function] [call site] 00102
4 conv_ascii2bin [function] [call site] 00103
4 evp_decodeblock_int [function] [call site] 00104
5 conv_ascii2bin [function] [call site] 00105
5 conv_ascii2bin [function] [call site] 00106
5 conv_ascii2bin [function] [call site] 00107
5 conv_ascii2bin [function] [call site] 00108
5 conv_ascii2bin [function] [call site] 00109
5 conv_ascii2bin [function] [call site] 00110
4 evp_decodeblock_int [function] [call site] 00111
3 EVP_DecodeFinal [function] [call site] 00112
4 evp_decodeblock_int [function] [call site] 00113
3 pem_malloc [function] [call site] 00116
3 pem_malloc [function] [call site] 00117
3 BIO_read [function] [call site] 00118
4 bio_read_intern [function] [call site] 00119
5 bio_call_callback [function] [call site] 00122
5 bio_call_callback [function] [call site] 00124
3 EVP_ENCODE_CTX_free [function] [call site] 00129
3 BIO_free [function] [call site] 00131
4 CRYPTO_DOWN_REF [function] [call site] 00132
4 bio_call_callback [function] [call site] 00133
4 CRYPTO_free_ex_data [function] [call site] 00134
4 CRYPTO_FREE_REF [function] [call site] 00135
2 strlen [call site] 00137
2 BIO_write [function] [call site] 00138
2 strlen [call site] 00139
2 BIO_write [function] [call site] 00140
2 BIO_write [function] [call site] 00141