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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 45 response_add_header_no_check(MHD_Response*, unsigned long, char const*, unsigned long, char const*) call site: 00045 pthread_mutex_unlock
3 154 mhd_response_deinit_content_data(MHD_Response*) call site: 00154
2 61 MHD_response_set_options call site: 00061 pthread_mutex_unlock
1 29 add_headers(FuzzedDataProvider&, MHD_Response*) call site: 00029 pthread_mutex_lock
1 65 response_make_reusable(MHD_Response*) call site: 00065 pthread_mutex_destroy
1 124 response_add_auth_digest_challenge_int(MHD_Response*, char const*, char const*, char const*, MHD_Bool, MHD_DigestAuthMultiQOP, MHD_DigestAuthMultiAlgo, MHD_Bool, MHD_Bool) call site: 00124
1 145 LLVMFuzzerTestOneInput call site: 00145

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 pick_status_code(FuzzedDataProvider&) [function] [call site] 00001
1 create_response(FuzzedDataProvider&, MHD_HTTP_StatusCode) [function] [call site] 00002
2 MHD_response_from_buffer [function] [call site] 00003
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00004
4 calloc [call site] 00005
4 calloc [call site] 00006
2 MHD_response_from_buffer [function] [call site] 00007
2 MHD_response_from_buffer_copy [function] [call site] 00008
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00009
3 response_cntn_free_buf(void*) [function] [call site] 00010
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00011
2 MHD_response_from_iovec [function] [call site] 00012
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00013
3 calloc [call site] 00014
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00015
2 mkstemp [call site] 00016
2 unlink [call site] 00017
2 write [call site] 00018
2 MHD_response_from_fd [function] [call site] 00019
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00020
2 close [call site] 00021
2 pipe [call site] 00022
2 write [call site] 00023
2 close [call site] 00024
2 MHD_response_from_pipe [function] [call site] 00025
3 response_create_basic(MHD_HTTP_StatusCode, unsigned long, void (*)(void*), void*) [function] [call site] 00026
2 close [call site] 00027
1 add_headers(FuzzedDataProvider&, MHD_Response*) [function] [call site] 00028
2 MHD_response_add_header [function] [call site] 00029
3 pthread_mutex_lock [call site] 00030
3 response_add_header_int(MHD_Response*, char const*, char const*) [function] [call site] 00031
4 strlen [call site] 00032
4 strlen [call site] 00033
4 memchr [call site] 00034
4 memchr [call site] 00035
4 memchr [call site] 00036
4 memchr [call site] 00037
4 memchr [call site] 00038
4 memchr [call site] 00039
4 memchr [call site] 00040
4 response_add_header_no_check(MHD_Response*, unsigned long, char const*, unsigned long, char const*) [function] [call site] 00041
5 is_name_h2_allowed(unsigned long, char const*) [function] [call site] 00042
6 mhd_str_equal_caseless_bin_n(char const*, char const*, unsigned long) [function] [call site] 00043
5 mhd_str_is_lowercase_bin_n(unsigned long, char const*) [function] [call site] 00044
5 mhd_str_to_lowercase_bin_n(unsigned long, char const*, char*) [function] [call site] 00045
3 pthread_mutex_unlock [call site] 00046
3 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00047
4 fprintf [call site] 00048
4 fprintf [call site] 00049
4 fprintf [call site] 00050
4 abort [call site] 00051
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00052
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00053
2 MHD_response_add_header [function] [call site] 00054
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00055
2 MHD_response_add_predef_header [function] [call site] 00056
1 randomise_response_options(FuzzedDataProvider&, MHD_Response*) [function] [call site] 00057
2 ToMhdBool(bool) [function] [call site] 00058
2 MHD_R_OPTION_REUSABLE(MHD_Bool) [function] [call site] 00059
2 MHD_response_set_options [function] [call site] 00060
3 pthread_mutex_lock [call site] 00061
3 pthread_mutex_unlock [call site] 00062
3 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00063
3 response_make_reusable(MHD_Response*) [function] [call site] 00064
4 pthread_mutex_init [call site] 00065
4 pthread_mutex_destroy [call site] 00066
3 pthread_mutex_unlock [call site] 00067
3 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00068
2 ToMhdBool(bool) [function] [call site] 00069
2 MHD_R_OPTION_HEAD_ONLY_RESPONSE(MHD_Bool) [function] [call site] 00070
2 MHD_response_set_options [function] [call site] 00071
2 ToMhdBool(bool) [function] [call site] 00072
2 MHD_R_OPTION_CHUNKED_ENC(MHD_Bool) [function] [call site] 00073
2 MHD_response_set_options [function] [call site] 00074
2 ToMhdBool(bool) [function] [call site] 00075
2 MHD_R_OPTION_CONN_CLOSE(MHD_Bool) [function] [call site] 00076
2 MHD_response_set_options [function] [call site] 00077
2 ToMhdBool(bool) [function] [call site] 00078
2 MHD_R_OPTION_HTTP_1_0_SERVER(MHD_Bool) [function] [call site] 00079
2 MHD_response_set_options [function] [call site] 00080
2 ToMhdBool(bool) [function] [call site] 00081
2 MHD_R_OPTION_HTTP_1_0_COMPATIBLE_STRICT(MHD_Bool) [function] [call site] 00082
2 MHD_response_set_options [function] [call site] 00083
2 ToMhdBool(bool) [function] [call site] 00084
2 MHD_R_OPTION_INSANITY_HEADER_CONTENT_LENGTH(MHD_Bool) [function] [call site] 00085
2 MHD_response_set_options [function] [call site] 00086
2 MHD_R_OPTION_TERMINATION_CALLBACK(void (*)(void*, MHD_RequestEndedData const*, void*), void*) [function] [call site] 00087
2 request_ended_cb(void*, MHD_RequestEndedData const*, void*) [function] [call site] 00088
2 MHD_response_set_options [function] [call site] 00089
1 add_auth(FuzzedDataProvider&, MHD_Response*, MHD_HTTP_StatusCode) [function] [call site] 00090
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00091
2 ToMhdBool(bool) [function] [call site] 00092
2 MHD_response_add_auth_basic_challenge [function] [call site] 00093
3 pthread_mutex_lock [call site] 00094
3 response_add_auth_basic_challenge_int(MHD_Response*, char const*, MHD_Bool) [function] [call site] 00095
4 strlen [call site] 00096
4 memchr [call site] 00097
4 memchr [call site] 00098
4 mhd_str_quote(char const*, unsigned long, char*, unsigned long) [function] [call site] 00099
4 realloc [call site] 00100
3 pthread_mutex_unlock [call site] 00101
3 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00102
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00103
2 ToMhdBool(bool) [function] [call site] 00104
2 ToMhdBool(bool) [function] [call site] 00105
2 MHD_response_add_auth_digest_challenge [function] [call site] 00106
3 pthread_mutex_lock [call site] 00107
3 response_add_auth_digest_challenge_int(MHD_Response*, char const*, char const*, char const*, MHD_Bool, MHD_DigestAuthMultiQOP, MHD_DigestAuthMultiAlgo, MHD_Bool, MHD_Bool) [function] [call site] 00108
4 strlen [call site] 00109
4 strlen [call site] 00110
4 strlen [call site] 00111
4 memchr [call site] 00112
4 memchr [call site] 00113
4 memchr [call site] 00114
4 memchr [call site] 00115
4 memchr [call site] 00116
4 memchr [call site] 00117
4 memchr [call site] 00118
4 response_add_auth_digest_challenge_alg(MHD_Response*, MHD_String const*, MHD_StringNullable const*, MHD_StringNullable const*, MHD_Bool, bool, MHD_DigestAuthAlgo, MHD_Bool, MHD_Bool) [function] [call site] 00119
5 mhd_str_quote(char const*, unsigned long, char*, unsigned long) [function] [call site] 00120
5 mhd_str_quote(char const*, unsigned long, char*, unsigned long) [function] [call site] 00121
5 realloc [call site] 00122
4 response_add_auth_digest_challenge_alg(MHD_Response*, MHD_String const*, MHD_StringNullable const*, MHD_StringNullable const*, MHD_Bool, bool, MHD_DigestAuthAlgo, MHD_Bool, MHD_Bool) [function] [call site] 00123
4 response_add_auth_digest_challenge_alg(MHD_Response*, MHD_String const*, MHD_StringNullable const*, MHD_StringNullable const*, MHD_Bool, bool, MHD_DigestAuthAlgo, MHD_Bool, MHD_Bool) [function] [call site] 00124
4 mhd_response_remove_auth_digest_headers(MHD_Response*) [function] [call site] 00125
3 pthread_mutex_unlock [call site] 00126
3 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00127
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00128
2 ToMhdBool(bool) [function] [call site] 00129
2 ToMhdBool(bool) [function] [call site] 00130
2 ToMhdBool(bool) [function] [call site] 00131
2 MHD_response_add_auth_digest_challenge [function] [call site] 00132
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00133
2 ToMhdBool(bool) [function] [call site] 00134
2 MHD_response_add_auth_basic_challenge [function] [call site] 00135
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00136
2 ToMhdBool(bool) [function] [call site] 00137
2 MHD_response_add_auth_basic_challenge [function] [call site] 00138
2 safe_ascii(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) [function] [call site] 00139
2 ToMhdBool(bool) [function] [call site] 00140
2 ToMhdBool(bool) [function] [call site] 00141
2 MHD_response_add_auth_digest_challenge [function] [call site] 00142
1 MHD_HTTP_status_code_to_string [function] [call site] 00143
1 MHD_status_code_to_string [call site] 00144
1 MHD_response_destroy [function] [call site] 00145
2 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00146
2 response_full_deinit(MHD_Response*) [function] [call site] 00147
3 mhd_response_remove_auth_digest_headers(MHD_Response*) [function] [call site] 00148
3 mhd_response_remove_all_headers(MHD_Response*) [function] [call site] 00149
3 mhd_response_deinit_reusable(MHD_Response*) [function] [call site] 00150
4 pthread_mutex_destroy [call site] 00151
4 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00152
3 mhd_response_deinit_content_data(MHD_Response*) [function] [call site] 00153
4 close [call site] 00154
2 mhd_response_dec_use_count(MHD_Response*) [function] [call site] 00155
3 mhd_panic(char const*, char const*, unsigned int, char const*) [function] [call site] 00156
3 response_full_deinit(MHD_Response*) [function] [call site] 00157