Fuzz introspector: hashtable
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
438 880 5 :

['CRYPTO_free', 'CRYPTO_FREE_REF.6938', 'EVP_RAND_CTX_free', 'EVP_RAND_free', 'CRYPTO_DOWN_REF.6937']

438 880 EVP_RAND_CTX_free call site: 00000 /src/openssl/crypto/evp/evp_rand.c:390
266 266 3 :

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

266 266 do_init_module_list_lock call site: 00000 /src/openssl/crypto/conf/conf_mod.c:103
266 266 3 :

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

266 266 OPENSSL_sk_insert call site: 00171 /src/openssl/crypto/stack/stack.c:273
266 266 3 :

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

266 266 sk_reserve call site: 00147 /src/openssl/crypto/stack/stack.c:210
46 51 6 :

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

46 51 OBJ_NAME_cleanup call site: 00000 /src/openssl/crypto/objects/o_names.c:371
40 40 2 :

['ossl_strtouint64', 'ossl_strchr']

44 44 OPENSSL_cpuid_setup call site: 00000 /src/openssl/crypto/cpuid.c:107
14 14 1 :

['async_deinit']

14 2924 OPENSSL_cleanup call site: 00000 /src/openssl/crypto/init.c:431
0 621 1 :

['ossl_provider_store_free']

0 621 ossl_provider_store_new call site: 00000 /src/openssl/crypto/provider_core.c:313
0 297 2 :

['sk_reserve', 'OPENSSL_sk_free']

0 297 OPENSSL_sk_new_reserve call site: 00079 /src/openssl/crypto/stack/stack.c:236
0 96 1 :

['ossl_method_store_free']

0 96 ossl_method_store_new call site: 00000 /src/openssl/crypto/property/property.c:250
0 87 1 :

['ossl_namemap_free']

0 87 ossl_namemap_new call site: 00000 /src/openssl/crypto/core_namemap.c:537
0 28 3 :

['CRYPTO_free', 'CRYPTO_THREAD_lock_free', 'ossl_rcu_lock_free']

0 28 ossl_ht_new call site: 00000 /src/openssl/crypto/hashtable/hashtable.c:217

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 FuzzerTestOneInput [function] [call site] 00001
2 ossl_ht_write_lock [function] [call site] 00002
3 ossl_rcu_write_lock [function] [call site] 00003
4 pthread_mutex_lock [call site] 00004
2 ossl_ht_fz_FUZZER_VALUE_insert [function] [call site] 00005
3 ossl_ht_insert [function] [call site] 00006
4 alloc_new_value [function] [call site] 00007
4 ossl_ht_insert_locked [function] [call site] 00008
5 ossl_rcu_uptr_deref [function] [call site] 00009
5 CRYPTO_atomic_load [function] [call site] 00010
5 compare_hash [function] [call site] 00011
5 match_key [function] [call site] 00012
6 memcmp [call site] 00013
5 CRYPTO_atomic_store [function] [call site] 00014
5 ossl_rcu_assign_uptr [function] [call site] 00015
5 ossl_rcu_call [function] [call site] 00016
5 free_old_ht_value [function] [call site] 00017
5 CRYPTO_atomic_store [function] [call site] 00018
5 ossl_rcu_assign_uptr [function] [call site] 00019
4 grow_hashtable [function] [call site] 00020
5 ossl_rcu_uptr_deref [function] [call site] 00021
5 alloc_new_neighborhood_list [function] [call site] 00022
5 grow_hashtable [function] [call site] 00023
6 ossl_rcu_assign_uptr [function] [call site] 00024
6 ossl_rcu_call [function] [call site] 00025
6 free_old_neigh_table [function] [call site] 00026
4 free_value [function] [call site] 00027
2 ossl_ht_fz_FUZZER_VALUE_insert [function] [call site] 00028
2 ossl_ht_write_unlock [function] [call site] 00029
3 ossl_rcu_write_unlock [function] [call site] 00030
4 pthread_mutex_unlock [call site] 00031
3 ossl_synchronize_rcu [function] [call site] 00032
4 pthread_mutex_lock [call site] 00033
4 pthread_mutex_unlock [call site] 00034
4 update_qp [function] [call site] 00035
5 pthread_mutex_lock [call site] 00036
5 pthread_cond_wait [call site] 00037
5 pthread_cond_signal [call site] 00038
5 pthread_mutex_unlock [call site] 00039
4 pthread_mutex_lock [call site] 00040
4 pthread_cond_wait [call site] 00041
4 pthread_cond_broadcast [call site] 00042
4 pthread_mutex_unlock [call site] 00043
4 retire_qp [function] [call site] 00044
5 pthread_mutex_lock [call site] 00045
5 pthread_cond_signal [call site] 00046
5 pthread_mutex_unlock [call site] 00047
2 ossl_ht_write_lock [function] [call site] 00048
2 ossl_ht_delete [function] [call site] 00049
3 compare_hash [function] [call site] 00050
3 match_key [function] [call site] 00051
3 CRYPTO_atomic_store [function] [call site] 00052
3 ossl_rcu_assign_uptr [function] [call site] 00053
3 ossl_rcu_call [function] [call site] 00054
3 free_old_entry [function] [call site] 00055
4 free_value [function] [call site] 00056
2 ossl_ht_write_unlock [function] [call site] 00057
2 ossl_ht_read_lock [function] [call site] 00058
3 ossl_rcu_read_lock [function] [call site] 00059
4 ossl_lib_ctx_get_rcukey [function] [call site] 00060
5 ossl_lib_ctx_get_concrete [function] [call site] 00061
6 get_default_context [function] [call site] 00062
7 get_thread_default_context [function] [call site] 00063
8 CRYPTO_THREAD_get_local [function] [call site] 00064
9 pthread_getspecific [call site] 00065
4 CRYPTO_THREAD_get_local [function] [call site] 00066
4 CRYPTO_THREAD_set_local [function] [call site] 00067
5 pthread_setspecific [call site] 00068
4 ossl_init_thread_start [function] [call site] 00069
5 init_get_thread_local [function] [call site] 00070
6 CRYPTO_THREAD_get_local [function] [call site] 00071
6 CRYPTO_THREAD_set_local [function] [call site] 00072
6 init_thread_push_handlers [function] [call site] 00073
7 get_global_tevent_register [function] [call site] 00074
8 create_global_tevent_register_ossl_ [function] [call site] 00075
9 create_global_tevent_register [function] [call site] 00076
10 sk_THREAD_EVENT_HANDLER_PTR_new_null [function] [call site] 00077
11 OPENSSL_sk_new_null [function] [call site] 00078
12 OPENSSL_sk_new_reserve [function] [call site] 00079
13 sk_reserve [function] [call site] 00080
14 ERR_new [function] [call site] 00081
15 err_get_slot [function] [call site] 00082
15 err_clear [function] [call site] 00083
16 err_clear_data [function] [call site] 00084
14 ERR_set_debug [function] [call site] 00085
15 err_set_debug [function] [call site] 00086
16 strlen [call site] 00087
16 strcpy [call site] 00088
16 strlen [call site] 00089
16 strcpy [call site] 00090
14 ERR_set_error [function] [call site] 00091
15 ERR_vset_error [function] [call site] 00092
16 BIO_vsnprintf [function] [call site] 00093
17 _dopr [function] [call site] 00094
18 doapr_outch [function] [call site] 00095
19 ossl_assert_int [function] [call site] 00096
19 ossl_assert_int [function] [call site] 00097
19 ossl_assert_int [function] [call site] 00098
18 ossl_isdigit [function] [call site] 00099
18 ossl_isdigit [function] [call site] 00100
18 fmtint [function] [call site] 00101
19 strlen [call site] 00102
19 doapr_outch [function] [call site] 00103
19 doapr_outch [function] [call site] 00104
19 doapr_outch [function] [call site] 00105
19 doapr_outch [function] [call site] 00106
19 doapr_outch [function] [call site] 00107
19 doapr_outch [function] [call site] 00108
18 fmtfp [function] [call site] 00110
19 doapr_outch [function] [call site] 00113
19 doapr_outch [function] [call site] 00114
19 doapr_outch [function] [call site] 00119
19 doapr_outch [function] [call site] 00120
19 doapr_outch [function] [call site] 00121
19 doapr_outch [function] [call site] 00122
19 doapr_outch [function] [call site] 00123
19 doapr_outch [function] [call site] 00124
19 doapr_outch [function] [call site] 00125
19 doapr_outch [function] [call site] 00126
19 doapr_outch [function] [call site] 00127
19 doapr_outch [function] [call site] 00128
19 doapr_outch [function] [call site] 00129
19 doapr_outch [function] [call site] 00130
19 doapr_outch [function] [call site] 00131
19 doapr_outch [function] [call site] 00132
18 doapr_outch [function] [call site] 00135
18 fmtstr [function] [call site] 00136
19 OPENSSL_strnlen [function] [call site] 00137
19 doapr_outch [function] [call site] 00138
19 doapr_outch [function] [call site] 00139
19 doapr_outch [function] [call site] 00140
18 doapr_outch [function] [call site] 00142
18 doapr_outch [function] [call site] 00143
16 err_clear_data [function] [call site] 00144
16 err_set_error [function] [call site] 00145
16 err_set_data [function] [call site] 00146
14 compute_growth [function] [call site] 00147
15 safe_muldiv_int [function] [call site] 00148
16 safe_mul_int [function] [call site] 00149
16 safe_div_int [function] [call site] 00150
16 safe_mod_int [function] [call site] 00151
16 safe_add_int [function] [call site] 00152
14 ERR_set_debug [function] [call site] 00154
14 ERR_set_error [function] [call site] 00155
13 OPENSSL_sk_free [function] [call site] 00156
10 CRYPTO_THREAD_lock_new [function] [call site] 00157
11 pthread_rwlock_init [call site] 00158
10 sk_THREAD_EVENT_HANDLER_PTR_free [function] [call site] 00159
11 OPENSSL_sk_free [function] [call site] 00160
10 CRYPTO_THREAD_lock_free [function] [call site] 00161
11 pthread_rwlock_destroy [call site] 00162
7 CRYPTO_THREAD_write_lock [function] [call site] 00163
8 pthread_rwlock_wrlock [call site] 00164
8 ossl_assert_int [function] [call site] 00165
7 sk_THREAD_EVENT_HANDLER_PTR_push [function] [call site] 00166
8 OPENSSL_sk_push [function] [call site] 00167
9 OPENSSL_sk_insert [function] [call site] 00168
10 ERR_set_debug [function] [call site] 00170
10 ERR_set_error [function] [call site] 00171
10 ERR_set_debug [function] [call site] 00173
10 ERR_set_error [function] [call site] 00174
10 sk_reserve [function] [call site] 00175
7 CRYPTO_THREAD_unlock [function] [call site] 00176
8 pthread_rwlock_unlock [call site] 00177
6 CRYPTO_THREAD_set_local [function] [call site] 00178
6 CRYPTO_THREAD_set_local [function] [call site] 00179
4 ossl_rcu_free_local_data [function] [call site] 00180
5 ossl_lib_ctx_get_rcukey [function] [call site] 00181
5 CRYPTO_THREAD_get_local [function] [call site] 00182
5 CRYPTO_THREAD_set_local [function] [call site] 00183
4 __assert_fail [call site] 00184
4 get_hold_current_qp [function] [call site] 00185
2 ossl_ht_fz_FUZZER_VALUE_get [function] [call site] 00186
3 ossl_ht_get [function] [call site] 00187
4 ossl_rcu_uptr_deref [function] [call site] 00188
4 ossl_rcu_uptr_deref [function] [call site] 00189
4 CRYPTO_atomic_load [function] [call site] 00190
4 compare_hash [function] [call site] 00191
4 match_key [function] [call site] 00192
3 ossl_rcu_uptr_deref [function] [call site] 00193
3 ossl_ht_fz_FUZZER_VALUE_from_value [function] [call site] 00194
2 ossl_ht_read_unlock [function] [call site] 00195
3 ossl_rcu_read_unlock [function] [call site] 00196
4 ossl_lib_ctx_get_rcukey [function] [call site] 00197
4 CRYPTO_THREAD_get_local [function] [call site] 00198
4 __assert_fail [call site] 00199
4 __assert_fail [call site] 00200
2 ossl_ht_fz_FUZZER_VALUE_type [function] [call site] 00201
2 ossl_ht_fz_FUZZER_VALUE_to_value [function] [call site] 00202
2 ossl_ht_write_lock [function] [call site] 00203
2 ossl_ht_flush [function] [call site] 00204
3 ossl_ht_flush_internal [function] [call site] 00205
4 alloc_new_neighborhood_list [function] [call site] 00206
4 ossl_rcu_uptr_deref [function] [call site] 00207
4 ossl_rcu_assign_uptr [function] [call site] 00208
4 ossl_rcu_call [function] [call site] 00209
4 free_oldmd [function] [call site] 00210
5 free_value [function] [call site] 00211
2 ossl_ht_write_unlock [function] [call site] 00212
2 ossl_ht_foreach_until [function] [call site] 00213
3 ossl_rcu_uptr_deref [function] [call site] 00214
2 table_iterator [function] [call site] 00215
3 ossl_ht_fz_FUZZER_VALUE_from_value [function] [call site] 00216
2 ossl_ht_filter [function] [call site] 00217
3 ossl_rcu_uptr_deref [function] [call site] 00218
2 filter_iterator [function] [call site] 00219
3 ossl_ht_fz_FUZZER_VALUE_from_value [function] [call site] 00220
2 ossl_ht_value_list_free [function] [call site] 00221