Fuzz introspector: read_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
22 22 2 :

['handle_cpu_env', 'strchr']

22 22 OPENSSL_cpuid_setup call site: 00000 /src/boringssl/crypto/cpu_intel.c:265
2 2 1 :

['OPENSSL_memory_get_size']

2 85 OPENSSL_realloc call site: 00057 /src/boringssl/crypto/mem.c:306
2 2 1 :

['OPENSSL_memory_alloc']

2 60 OPENSSL_malloc call site: 00024 /src/boringssl/crypto/mem.c:233
2 2 1 :

['__errno_location']

2 6 ERR_put_error call site: 00004 /src/boringssl/crypto/err/err.c:665
2 2 1 :

['OPENSSL_memory_free']

2 2 OPENSSL_free call site: 00030 /src/boringssl/crypto/mem.c:276
2 2 1 :

['sdallocx']

2 2 OPENSSL_free call site: 00032 /src/boringssl/crypto/mem.c:292
0 58 1 :

['ERR_put_error']

0 58 BIO_gets call site: 00046 /src/boringssl/crypto/bio/bio.c:147
0 0 None 24 26 OPENSSL_cpuid_setup call site: 00000 /src/boringssl/crypto/cpu_intel.c:176
0 0 None 24 26 OPENSSL_cpuid_setup call site: 00000 /src/boringssl/crypto/cpu_intel.c:209
0 0 None 24 26 OPENSSL_cpuid_setup call site: 00000 /src/boringssl/crypto/cpu_intel.c:215
0 0 None 24 24 OPENSSL_cpuid_setup call site: 00000 /src/boringssl/crypto/cpu_intel.c:254
0 0 None 4 4 mem_read call site: 00000 /src/boringssl/crypto/bio/bio_mem.c:140

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 BIO_new_mem_buf [function] [call site] 00001
2 strlen [call site] 00002
2 ERR_put_error [function] [call site] 00003
3 err_get_state [function] [call site] 00004
4 CRYPTO_get_thread_local [function] [call site] 00005
5 CRYPTO_once [function] [call site] 00006
6 pthread_once [call site] 00007
6 abort [call site] 00008
5 pthread_getspecific [call site] 00009
4 OPENSSL_memset [function] [call site] 00010
4 CRYPTO_set_thread_local [function] [call site] 00011
5 CRYPTO_once [function] [call site] 00012
5 pthread_getspecific [call site] 00013
5 OPENSSL_memset [function] [call site] 00014
5 pthread_setspecific [call site] 00015
5 pthread_mutex_lock [call site] 00016
5 pthread_mutex_unlock [call site] 00017
4 err_state_free [function] [call site] 00018
5 err_clear [function] [call site] 00019
6 OPENSSL_memset [function] [call site] 00020
3 __errno_location [call site] 00021
3 err_clear [function] [call site] 00022
2 BIO_new [function] [call site] 00023
3 OPENSSL_malloc [function] [call site] 00024
4 __assert_fail [call site] 00025
4 __assert_fail [call site] 00026
4 OPENSSL_memory_alloc [call site] 00027
4 ERR_put_error [function] [call site] 00028
3 OPENSSL_memset [function] [call site] 00029
3 OPENSSL_free [function] [call site] 00030
4 OPENSSL_memory_free [call site] 00031
4 OPENSSL_cleanse [function] [call site] 00032
5 OPENSSL_memset [function] [call site] 00033
4 sdallocx [call site] 00034
1 PEM_read_bio [function] [call site] 00035
2 BUF_MEM_new [function] [call site] 00036
3 OPENSSL_malloc [function] [call site] 00037
3 OPENSSL_memset [function] [call site] 00038
2 BUF_MEM_new [function] [call site] 00039
2 BUF_MEM_new [function] [call site] 00040
2 BUF_MEM_free [function] [call site] 00041
3 OPENSSL_free [function] [call site] 00042
2 BUF_MEM_free [function] [call site] 00043
2 BUF_MEM_free [function] [call site] 00044
2 BIO_gets [function] [call site] 00045
3 ERR_put_error [function] [call site] 00046
3 ERR_put_error [function] [call site] 00047
2 ERR_put_error [function] [call site] 00048
2 strncmp [call site] 00049
2 strlen [call site] 00050
2 strncmp [call site] 00051
2 BUF_MEM_grow [function] [call site] 00052
3 BUF_MEM_reserve [function] [call site] 00053
4 ERR_put_error [function] [call site] 00054
4 ERR_put_error [function] [call site] 00055
4 OPENSSL_realloc [function] [call site] 00056
5 OPENSSL_malloc [function] [call site] 00057
5 OPENSSL_memory_get_size [call site] 00058
5 OPENSSL_malloc [function] [call site] 00059
5 OPENSSL_free [function] [call site] 00060
3 OPENSSL_memset [function] [call site] 00061
2 OPENSSL_memcpy [function] [call site] 00062
2 BUF_MEM_grow [function] [call site] 00063
2 BUF_MEM_grow [function] [call site] 00065
2 strncmp [call site] 00066
2 OPENSSL_memcpy [function] [call site] 00067
2 BUF_MEM_grow [function] [call site] 00068
2 strncmp [call site] 00070
2 BUF_MEM_grow_clean [function] [call site] 00071
3 BUF_MEM_grow [function] [call site] 00072
2 OPENSSL_memcpy [function] [call site] 00073
2 strncmp [call site] 00075
2 strlen [call site] 00076
2 strncmp [call site] 00077
2 strncmp [call site] 00078
2 ERR_put_error [function] [call site] 00079
2 EVP_DecodeInit [function] [call site] 00080
3 OPENSSL_memset [function] [call site] 00081
2 EVP_DecodeUpdate [function] [call site] 00082
3 base64_decode_quad [function] [call site] 00083
4 base64_ascii_to_bin [function] [call site] 00084
5 constant_time_in_range_8 [function] [call site] 00085
6 constant_time_lt_args_8 [function] [call site] 00086
7 constant_time_msb_w [function] [call site] 00087
5 constant_time_in_range_8 [function] [call site] 00088
5 constant_time_in_range_8 [function] [call site] 00089
5 constant_time_eq_8 [function] [call site] 00090
6 constant_time_eq_w [function] [call site] 00091
7 constant_time_is_zero_w [function] [call site] 00092
8 constant_time_msb_w [function] [call site] 00093
5 constant_time_eq_8 [function] [call site] 00094
5 constant_time_eq_8 [function] [call site] 00095
4 base64_ascii_to_bin [function] [call site] 00096
4 base64_ascii_to_bin [function] [call site] 00097
4 base64_ascii_to_bin [function] [call site] 00098
2 ERR_put_error [function] [call site] 00099
2 EVP_DecodeFinal [function] [call site] 00100
2 ERR_put_error [function] [call site] 00101
2 OPENSSL_free [function] [call site] 00102
2 OPENSSL_free [function] [call site] 00103
2 OPENSSL_free [function] [call site] 00104
2 BUF_MEM_free [function] [call site] 00105
2 BUF_MEM_free [function] [call site] 00106
2 BUF_MEM_free [function] [call site] 00107
1 OPENSSL_free [function] [call site] 00108
1 OPENSSL_free [function] [call site] 00109
1 OPENSSL_free [function] [call site] 00110
1 BIO_free [function] [call site] 00111
2 CRYPTO_refcount_dec_and_test_zero [function] [call site] 00112
3 CRYPTO_atomic_load_u32 [function] [call site] 00113
3 abort [call site] 00114
3 CRYPTO_atomic_compare_exchange_weak_u32 [function] [call site] 00115
1 ERR_clear_error [function] [call site] 00117
2 err_get_state [function] [call site] 00118
2 err_clear [function] [call site] 00119