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
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
261 261 3 :

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

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

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

261 261 OPENSSL_sk_insert call site: 00000 /src/openssl/crypto/stack/stack.c:264
261 261 3 :

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

261 261 sk_reserve call site: 00084 /src/openssl/crypto/stack/stack.c:209
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
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: 00078 /src/openssl/crypto/stack/stack.c:235
0 93 1 :

['ossl_method_store_free']

0 93 ossl_method_store_new call site: 00000 /src/openssl/crypto/property/property.c:249
0 33 1 :

['ossl_namemap_free']

0 33 ossl_namemap_new call site: 00000 /src/openssl/crypto/core_namemap.c:515

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
5 ossl_rcu_uptr_deref [function] [call site] 00008
4 ossl_ht_insert_locked [function] [call site] 00009
5 ossl_rcu_uptr_deref [function] [call site] 00010
5 CRYPTO_atomic_load [function] [call site] 00011
5 compare_hash [function] [call site] 00012
5 CRYPTO_atomic_store [function] [call site] 00013
5 ossl_rcu_assign_uptr [function] [call site] 00014
5 ossl_rcu_call [function] [call site] 00015
5 free_old_ht_value [function] [call site] 00016
5 CRYPTO_atomic_store [function] [call site] 00017
5 ossl_rcu_assign_uptr [function] [call site] 00018
4 grow_hashtable [function] [call site] 00019
5 ossl_rcu_uptr_deref [function] [call site] 00020
5 alloc_new_neighborhood_list [function] [call site] 00021
5 grow_hashtable [function] [call site] 00022
6 ossl_rcu_uptr_deref [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 CRYPTO_atomic_store [function] [call site] 00051
3 ossl_rcu_assign_uptr [function] [call site] 00052
3 ossl_rcu_call [function] [call site] 00053
3 free_old_entry [function] [call site] 00054
4 free_value [function] [call site] 00055
2 ossl_ht_write_unlock [function] [call site] 00056
2 ossl_ht_read_lock [function] [call site] 00057
3 ossl_rcu_read_lock [function] [call site] 00058
4 ossl_lib_ctx_get_rcukey [function] [call site] 00059
5 ossl_lib_ctx_get_concrete [function] [call site] 00060
6 get_default_context [function] [call site] 00061
7 get_thread_default_context [function] [call site] 00062
8 CRYPTO_THREAD_get_local [function] [call site] 00063
9 pthread_getspecific [call site] 00064
4 CRYPTO_THREAD_get_local [function] [call site] 00065
4 CRYPTO_THREAD_set_local [function] [call site] 00066
5 pthread_setspecific [call site] 00067
4 ossl_init_thread_start [function] [call site] 00068
5 init_get_thread_local [function] [call site] 00069
6 CRYPTO_THREAD_get_local [function] [call site] 00070
6 CRYPTO_THREAD_set_local [function] [call site] 00071
6 init_thread_push_handlers [function] [call site] 00072
7 get_global_tevent_register [function] [call site] 00073
8 create_global_tevent_register_ossl_ [function] [call site] 00074
9 create_global_tevent_register [function] [call site] 00075
10 sk_THREAD_EVENT_HANDLER_PTR_new_null [function] [call site] 00076
11 OPENSSL_sk_new_null [function] [call site] 00077
12 OPENSSL_sk_new_reserve [function] [call site] 00078
13 sk_reserve [function] [call site] 00079
14 ERR_new [function] [call site] 00080
15 err_get_slot [function] [call site] 00081
15 err_clear [function] [call site] 00082
16 err_clear_data [function] [call site] 00083
14 compute_growth [function] [call site] 00084
15 safe_muldiv_int [function] [call site] 00085
16 safe_mul_int [function] [call site] 00086
13 OPENSSL_sk_free [function] [call site] 00088
10 CRYPTO_THREAD_lock_new [function] [call site] 00089
11 pthread_rwlock_init [call site] 00090
10 sk_THREAD_EVENT_HANDLER_PTR_free [function] [call site] 00091
10 CRYPTO_THREAD_lock_free [function] [call site] 00092
11 pthread_rwlock_destroy [call site] 00093
7 CRYPTO_THREAD_write_lock [function] [call site] 00094
8 pthread_rwlock_wrlock [call site] 00095
7 sk_THREAD_EVENT_HANDLER_PTR_push [function] [call site] 00096
7 CRYPTO_THREAD_unlock [function] [call site] 00097
8 pthread_rwlock_unlock [call site] 00098
6 CRYPTO_THREAD_set_local [function] [call site] 00099
6 CRYPTO_THREAD_set_local [function] [call site] 00100
4 ossl_rcu_free_local_data [function] [call site] 00101
5 ossl_lib_ctx_get_rcukey [function] [call site] 00102
5 CRYPTO_THREAD_get_local [function] [call site] 00103
5 CRYPTO_THREAD_set_local [function] [call site] 00104
4 __assert_fail [call site] 00105
4 get_hold_current_qp [function] [call site] 00106
2 ossl_ht_fz_FUZZER_VALUE_get [function] [call site] 00107
3 ossl_rcu_uptr_deref [function] [call site] 00108
3 ossl_ht_fz_FUZZER_VALUE_from_value [function] [call site] 00109
2 ossl_ht_read_unlock [function] [call site] 00110
3 ossl_rcu_read_unlock [function] [call site] 00111
4 ossl_lib_ctx_get_rcukey [function] [call site] 00112
4 CRYPTO_THREAD_get_local [function] [call site] 00113
4 __assert_fail [call site] 00114
4 __assert_fail [call site] 00115
2 ossl_ht_fz_FUZZER_VALUE_type [function] [call site] 00116
2 ossl_ht_fz_FUZZER_VALUE_to_value [function] [call site] 00117
2 ossl_ht_write_lock [function] [call site] 00118
2 ossl_ht_flush [function] [call site] 00119
3 ossl_ht_flush_internal [function] [call site] 00120
4 alloc_new_neighborhood_list [function] [call site] 00121
4 ossl_rcu_uptr_deref [function] [call site] 00122
4 ossl_rcu_assign_uptr [function] [call site] 00123
4 ossl_rcu_call [function] [call site] 00124
4 free_oldmd [function] [call site] 00125
5 free_value [function] [call site] 00126
2 ossl_ht_write_unlock [function] [call site] 00127
2 ossl_ht_foreach_until [function] [call site] 00128
3 ossl_rcu_uptr_deref [function] [call site] 00129
2 table_iterator [function] [call site] 00130
3 ossl_ht_fz_FUZZER_VALUE_from_value [function] [call site] 00131
2 ossl_ht_filter [function] [call site] 00132
3 ossl_rcu_uptr_deref [function] [call site] 00133
2 filter_iterator [function] [call site] 00134
3 ossl_ht_fz_FUZZER_VALUE_from_value [function] [call site] 00135
2 ossl_ht_value_list_free [function] [call site] 00136