tor/scripts/maint/practracker/exceptions.txt
Nick Mathewson 01b07c548b Use parsing code for the simpler controller commands.
(This should be all of the command that work nicely with positional
arguments only.)

Some of these commands should probably treat extra arguments as
incorrect, but for now I'm trying to be careful not to break
any existing users.
2019-04-25 14:13:03 -04:00

292 lines
22 KiB
Plaintext

# Welcome to the exceptions file for Tor's best-practices tracker!
#
# Each line of this file represents a single violation of Tor's best
# practices -- typically, a violation that we had before practracker.py
# first existed.
#
# There are three kinds of problems that we recognize right now:
# function-size -- a function of more than 100 lines.
# file-size -- a file of more than 3000 lines.
# include-count -- a file with more than 50 #includes.
#
# Each line below represents a single exception that practracker should
# _ignore_. Each line has four parts:
# 1. The word "problem".
# 2. The kind of problem.
# 3. The location of the problem: either a filename, or a
# filename:functionname pair.
# 4. The magnitude of the problem to ignore.
#
# So for example, consider this line:
# problem file-size /src/core/or/connection_or.c 3200
#
# It tells practracker to allow the mentioned file to be up to 3200 lines
# long, even though ordinarily it would warn about any file with more than
# 3000 lines.
#
# You can either edit this file by hand, or regenerate it completely by
# running `make practracker-regen`.
#
# Remember: It is better to fix the problem than to add a new exception!
problem file-size /src/app/config/config.c 8491
problem include-count /src/app/config/config.c 86
problem function-size /src/app/config/config.c:options_act_reversible() 296
problem function-size /src/app/config/config.c:options_act() 588
problem function-size /src/app/config/config.c:resolve_my_address() 192
problem function-size /src/app/config/config.c:options_validate() 1207
problem function-size /src/app/config/config.c:options_init_from_torrc() 202
problem function-size /src/app/config/config.c:options_init_from_string() 173
problem function-size /src/app/config/config.c:options_init_logs() 146
problem function-size /src/app/config/config.c:parse_bridge_line() 104
problem function-size /src/app/config/config.c:parse_transport_line() 191
problem function-size /src/app/config/config.c:parse_dir_authority_line() 151
problem function-size /src/app/config/config.c:parse_dir_fallback_line() 102
problem function-size /src/app/config/config.c:parse_port_config() 452
problem function-size /src/app/config/config.c:parse_ports() 170
problem function-size /src/app/config/config.c:getinfo_helper_config() 116
problem function-size /src/app/config/confparse.c:config_assign_value() 205
problem function-size /src/app/config/confparse.c:config_get_assigned_option() 129
problem include-count /src/app/main/main.c 67
problem function-size /src/app/main/main.c:dumpstats() 102
problem function-size /src/app/main/main.c:tor_init() 136
problem function-size /src/app/main/main.c:sandbox_init_filter() 291
problem function-size /src/app/main/main.c:run_tor_main_loop() 105
problem function-size /src/app/main/ntmain.c:nt_service_install() 125
problem include-count /src/app/main/shutdown.c 52
problem file-size /src/core/mainloop/connection.c 5559
problem include-count /src/core/mainloop/connection.c 61
problem function-size /src/core/mainloop/connection.c:connection_free_minimal() 185
problem function-size /src/core/mainloop/connection.c:connection_listener_new() 328
problem function-size /src/core/mainloop/connection.c:connection_handle_listener_read() 161
problem function-size /src/core/mainloop/connection.c:connection_connect_sockaddr() 103
problem function-size /src/core/mainloop/connection.c:connection_proxy_connect() 148
problem function-size /src/core/mainloop/connection.c:connection_read_proxy_handshake() 153
problem function-size /src/core/mainloop/connection.c:retry_listener_ports() 116
problem function-size /src/core/mainloop/connection.c:connection_handle_read_impl() 111
problem function-size /src/core/mainloop/connection.c:connection_buf_read_from_socket() 181
problem function-size /src/core/mainloop/connection.c:connection_handle_write_impl() 241
problem function-size /src/core/mainloop/connection.c:assert_connection_ok() 143
problem file-size /src/core/mainloop/mainloop.c 3051
problem include-count /src/core/mainloop/mainloop.c 66
problem function-size /src/core/mainloop/mainloop.c:conn_close_if_marked() 108
problem function-size /src/core/mainloop/mainloop.c:run_connection_housekeeping() 123
problem function-size /src/core/mainloop/mainloop.c:CALLBACK() 116
problem file-size /src/core/or/channel.c 3476
problem function-size /src/core/or/channeltls.c:channel_tls_handle_var_cell() 160
problem function-size /src/core/or/channeltls.c:channel_tls_process_versions_cell() 170
problem function-size /src/core/or/channeltls.c:channel_tls_process_netinfo_cell() 214
problem function-size /src/core/or/channeltls.c:channel_tls_process_certs_cell() 246
problem function-size /src/core/or/channeltls.c:channel_tls_process_authenticate_cell() 202
problem file-size /src/core/or/circuitbuild.c 3060
problem include-count /src/core/or/circuitbuild.c 53
problem function-size /src/core/or/circuitbuild.c:get_unique_circ_id_by_chan() 128
problem function-size /src/core/or/circuitbuild.c:circuit_extend() 147
problem function-size /src/core/or/circuitbuild.c:choose_good_exit_server_general() 206
problem include-count /src/core/or/circuitlist.c 54
problem function-size /src/core/or/circuitlist.c:HT_PROTOTYPE() 128
problem function-size /src/core/or/circuitlist.c:circuit_free_() 137
problem function-size /src/core/or/circuitlist.c:circuit_find_to_cannibalize() 102
problem function-size /src/core/or/circuitlist.c:circuit_about_to_free() 120
problem function-size /src/core/or/circuitlist.c:circuits_handle_oom() 117
problem function-size /src/core/or/circuitmux.c:circuitmux_set_policy() 110
problem function-size /src/core/or/circuitmux.c:circuitmux_attach_circuit() 114
problem function-size /src/core/or/circuitstats.c:circuit_build_times_parse_state() 124
problem file-size /src/core/or/circuituse.c 3152
problem function-size /src/core/or/circuituse.c:circuit_is_acceptable() 129
problem function-size /src/core/or/circuituse.c:circuit_expire_building() 394
problem function-size /src/core/or/circuituse.c:circuit_log_ancient_one_hop_circuits() 126
problem function-size /src/core/or/circuituse.c:circuit_build_failed() 149
problem function-size /src/core/or/circuituse.c:circuit_launch_by_extend_info() 110
problem function-size /src/core/or/circuituse.c:circuit_get_open_circ_or_launch() 354
problem function-size /src/core/or/circuituse.c:connection_ap_handshake_attach_circuit() 244
problem function-size /src/core/or/command.c:command_process_create_cell() 156
problem function-size /src/core/or/command.c:command_process_relay_cell() 132
problem file-size /src/core/or/connection_edge.c 4550
problem include-count /src/core/or/connection_edge.c 64
problem function-size /src/core/or/connection_edge.c:connection_ap_expire_beginning() 117
problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_rewrite() 192
problem function-size /src/core/or/connection_edge.c:connection_ap_handle_onion() 188
problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_rewrite_and_attach() 423
problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_send_begin() 111
problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_socks_resolved() 106
problem function-size /src/core/or/connection_edge.c:connection_exit_begin_conn() 184
problem function-size /src/core/or/connection_edge.c:connection_exit_connect() 102
problem file-size /src/core/or/connection_or.c 3121
problem include-count /src/core/or/connection_or.c 51
problem function-size /src/core/or/connection_or.c:connection_or_group_set_badness_() 105
problem function-size /src/core/or/connection_or.c:connection_or_client_learned_peer_id() 144
problem function-size /src/core/or/connection_or.c:connection_or_compute_authenticate_cell_body() 235
problem file-size /src/core/or/policies.c 3163
problem function-size /src/core/or/policies.c:policy_summarize() 107
problem function-size /src/core/or/protover.c:protover_all_supported() 116
problem file-size /src/core/or/relay.c 3173
problem function-size /src/core/or/relay.c:circuit_receive_relay_cell() 123
problem function-size /src/core/or/relay.c:relay_send_command_from_edge_() 101
problem function-size /src/core/or/relay.c:connection_ap_process_end_not_open() 194
problem function-size /src/core/or/relay.c:connection_edge_process_relay_cell_not_open() 139
problem function-size /src/core/or/relay.c:connection_edge_process_relay_cell() 520
problem function-size /src/core/or/relay.c:connection_edge_package_raw_inbuf() 130
problem function-size /src/core/or/relay.c:circuit_resume_edge_reading_helper() 148
problem function-size /src/core/or/scheduler_kist.c:kist_scheduler_run() 171
problem function-size /src/core/or/scheduler_vanilla.c:vanilla_scheduler_run() 109
problem function-size /src/core/or/versions.c:tor_version_parse() 104
problem function-size /src/core/proto/proto_socks.c:parse_socks_client() 112
problem function-size /src/feature/client/addressmap.c:addressmap_rewrite() 112
problem function-size /src/feature/client/bridges.c:rewrite_node_address_for_bridge() 126
problem function-size /src/feature/client/circpathbias.c:pathbias_measure_close_rate() 108
problem function-size /src/feature/client/dnsserv.c:evdns_server_callback() 153
problem file-size /src/feature/client/entrynodes.c 3817
problem function-size /src/feature/client/entrynodes.c:entry_guards_upgrade_waiting_circuits() 153
problem function-size /src/feature/client/entrynodes.c:entry_guard_parse_from_state() 246
problem function-size /src/feature/client/transports.c:handle_proxy_line() 108
problem function-size /src/feature/client/transports.c:parse_method_line_helper() 112
problem function-size /src/feature/client/transports.c:create_managed_proxy_environment() 109
problem function-size /src/feature/control/control.c:connection_control_process_inbuf() 144
problem function-size /src/feature/control/control_auth.c:handle_control_authchallenge() 115
problem function-size /src/feature/control/control_auth.c:handle_control_authenticate() 188
problem function-size /src/feature/control/control_cmd.c:handle_control_extendcircuit() 151
problem function-size /src/feature/control/control_cmd.c:handle_control_hsfetch() 114
problem function-size /src/feature/control/control_cmd.c:handle_control_hspost() 117
problem function-size /src/feature/control/control_cmd.c:handle_control_add_onion() 293
problem function-size /src/feature/control/control_cmd.c:add_onion_helper_keyarg() 125
problem function-size /src/feature/control/control_cmd.c:handle_control_command() 104
problem function-size /src/feature/control/control_events.c:control_event_stream_status() 119
problem include-count /src/feature/control/control_getinfo.c 53
problem function-size /src/feature/control/control_getinfo.c:getinfo_helper_misc() 109
problem function-size /src/feature/control/control_getinfo.c:getinfo_helper_dir() 304
problem function-size /src/feature/control/control_getinfo.c:getinfo_helper_events() 236
problem function-size /src/feature/dirauth/bwauth.c:dirserv_read_measured_bandwidths() 127
problem file-size /src/feature/dirauth/dirvote.c 4728
problem include-count /src/feature/dirauth/dirvote.c 53
problem function-size /src/feature/dirauth/dirvote.c:format_networkstatus_vote() 250
problem function-size /src/feature/dirauth/dirvote.c:networkstatus_compute_bw_weights_v10() 235
problem function-size /src/feature/dirauth/dirvote.c:networkstatus_compute_consensus() 962
problem function-size /src/feature/dirauth/dirvote.c:networkstatus_add_detached_signatures() 123
problem function-size /src/feature/dirauth/dirvote.c:dirvote_add_vote() 162
problem function-size /src/feature/dirauth/dirvote.c:dirvote_compute_consensuses() 164
problem function-size /src/feature/dirauth/dirvote.c:dirserv_generate_networkstatus_vote_obj() 293
problem function-size /src/feature/dirauth/dsigs_parse.c:networkstatus_parse_detached_signatures() 196
problem function-size /src/feature/dirauth/guardfraction.c:dirserv_read_guardfraction_file_from_str() 110
problem function-size /src/feature/dirauth/process_descs.c:dirserv_add_descriptor() 125
problem function-size /src/feature/dirauth/shared_random.c:should_keep_commit() 110
problem function-size /src/feature/dirauth/voteflags.c:dirserv_compute_performance_thresholds() 172
problem function-size /src/feature/dircache/consdiffmgr.c:consdiffmgr_cleanup() 115
problem function-size /src/feature/dircache/consdiffmgr.c:consdiffmgr_rescan_flavor_() 111
problem function-size /src/feature/dircache/consdiffmgr.c:consensus_diff_worker_threadfn() 132
problem function-size /src/feature/dircache/dircache.c:handle_get_current_consensus() 166
problem function-size /src/feature/dircache/dircache.c:directory_handle_command_post() 120
problem file-size /src/feature/dirclient/dirclient.c 3215
problem include-count /src/feature/dirclient/dirclient.c 51
problem function-size /src/feature/dirclient/dirclient.c:directory_get_from_dirserver() 131
problem function-size /src/feature/dirclient/dirclient.c:directory_initiate_request() 201
problem function-size /src/feature/dirclient/dirclient.c:directory_send_command() 241
problem function-size /src/feature/dirclient/dirclient.c:dir_client_decompress_response_body() 114
problem function-size /src/feature/dirclient/dirclient.c:connection_dir_client_reached_eof() 189
problem function-size /src/feature/dirclient/dirclient.c:handle_response_fetch_consensus() 105
problem function-size /src/feature/dircommon/consdiff.c:gen_ed_diff() 204
problem function-size /src/feature/dircommon/consdiff.c:apply_ed_diff() 159
problem function-size /src/feature/dirparse/authcert_parse.c:authority_cert_parse_from_string() 182
problem function-size /src/feature/dirparse/microdesc_parse.c:microdescs_parse_from_string() 154
problem function-size /src/feature/dirparse/ns_parse.c:routerstatus_parse_entry_from_string() 286
problem function-size /src/feature/dirparse/ns_parse.c:networkstatus_verify_bw_weights() 389
problem function-size /src/feature/dirparse/ns_parse.c:networkstatus_parse_vote_from_string() 638
problem function-size /src/feature/dirparse/parsecommon.c:tokenize_string() 103
problem function-size /src/feature/dirparse/parsecommon.c:get_next_token() 159
problem function-size /src/feature/dirparse/routerparse.c:router_parse_entry_from_string() 554
problem function-size /src/feature/dirparse/routerparse.c:extrainfo_parse_entry_from_string() 210
problem function-size /src/feature/hibernate/hibernate.c:accounting_parse_options() 109
problem function-size /src/feature/hs/hs_cell.c:hs_cell_build_establish_intro() 115
problem function-size /src/feature/hs/hs_cell.c:hs_cell_parse_introduce2() 154
problem function-size /src/feature/hs/hs_client.c:send_introduce1() 104
problem function-size /src/feature/hs/hs_client.c:hs_config_client_authorization() 108
problem function-size /src/feature/hs/hs_common.c:hs_get_responsible_hsdirs() 104
problem function-size /src/feature/hs/hs_common.c:hs_get_extend_info_from_lspecs() 101
problem function-size /src/feature/hs/hs_config.c:config_generic_service() 149
problem function-size /src/feature/hs/hs_descriptor.c:desc_encode_v3() 108
problem function-size /src/feature/hs/hs_descriptor.c:decrypt_desc_layer() 110
problem function-size /src/feature/hs/hs_descriptor.c:decode_introduction_point() 122
problem function-size /src/feature/hs/hs_descriptor.c:desc_decode_superencrypted_v3() 109
problem function-size /src/feature/hs/hs_descriptor.c:desc_decode_encrypted_v3() 109
problem file-size /src/feature/hs/hs_service.c 4109
problem function-size /src/feature/keymgt/loadkey.c:ed_key_init_from_file() 333
problem function-size /src/feature/nodelist/authcert.c:trusted_dirs_load_certs_from_string() 124
problem function-size /src/feature/nodelist/authcert.c:authority_certs_fetch_missing() 296
problem function-size /src/feature/nodelist/fmt_routerstatus.c:routerstatus_format_entry() 166
problem function-size /src/feature/nodelist/microdesc.c:microdesc_cache_rebuild() 134
problem include-count /src/feature/nodelist/networkstatus.c 61
problem function-size /src/feature/nodelist/networkstatus.c:networkstatus_check_consensus_signature() 176
problem function-size /src/feature/nodelist/networkstatus.c:networkstatus_set_current_consensus() 293
problem function-size /src/feature/nodelist/node_select.c:router_pick_directory_server_impl() 123
problem function-size /src/feature/nodelist/node_select.c:compute_weighted_bandwidths() 205
problem function-size /src/feature/nodelist/node_select.c:router_pick_trusteddirserver_impl() 114
problem function-size /src/feature/nodelist/nodelist.c:compute_frac_paths_available() 193
problem file-size /src/feature/nodelist/routerlist.c 3234
problem function-size /src/feature/nodelist/routerlist.c:router_rebuild_store() 148
problem function-size /src/feature/nodelist/routerlist.c:router_add_to_routerlist() 169
problem function-size /src/feature/nodelist/routerlist.c:routerlist_remove_old_routers() 121
problem function-size /src/feature/nodelist/routerlist.c:update_consensus_router_descriptor_downloads() 136
problem function-size /src/feature/nodelist/routerlist.c:update_extrainfo_downloads() 103
problem function-size /src/feature/relay/dns.c:dns_resolve_impl() 134
problem function-size /src/feature/relay/dns.c:configure_nameservers() 161
problem function-size /src/feature/relay/dns.c:evdns_callback() 109
problem file-size /src/feature/relay/router.c 3412
problem include-count /src/feature/relay/router.c 56
problem function-size /src/feature/relay/router.c:init_keys() 252
problem function-size /src/feature/relay/router.c:get_my_declared_family() 114
problem function-size /src/feature/relay/router.c:router_build_fresh_unsigned_routerinfo() 136
problem function-size /src/feature/relay/router.c:router_dump_router_to_string() 375
problem function-size /src/feature/relay/router.c:extrainfo_dump_to_string() 207
problem function-size /src/feature/relay/routerkeys.c:load_ed_keys() 294
problem function-size /src/feature/rend/rendcache.c:rend_cache_store_v2_desc_as_client() 193
problem function-size /src/feature/rend/rendclient.c:rend_client_send_introduction() 220
problem function-size /src/feature/rend/rendcommon.c:rend_encode_v2_descriptors() 225
problem function-size /src/feature/rend/rendmid.c:rend_mid_establish_intro_legacy() 104
problem function-size /src/feature/rend/rendparse.c:rend_parse_v2_service_descriptor() 187
problem function-size /src/feature/rend/rendparse.c:rend_decrypt_introduction_points() 104
problem function-size /src/feature/rend/rendparse.c:rend_parse_introduction_points() 131
problem file-size /src/feature/rend/rendservice.c 4509
problem function-size /src/feature/rend/rendservice.c:rend_service_prune_list_impl_() 107
problem function-size /src/feature/rend/rendservice.c:rend_config_service() 164
problem function-size /src/feature/rend/rendservice.c:rend_service_load_auth_keys() 178
problem function-size /src/feature/rend/rendservice.c:rend_service_receive_introduction() 332
problem function-size /src/feature/rend/rendservice.c:rend_service_parse_intro_for_v3() 115
problem function-size /src/feature/rend/rendservice.c:rend_service_decrypt_intro() 115
problem function-size /src/feature/rend/rendservice.c:rend_service_intro_has_opened() 126
problem function-size /src/feature/rend/rendservice.c:rend_service_rendezvous_has_opened() 117
problem function-size /src/feature/rend/rendservice.c:directory_post_to_hs_dir() 108
problem function-size /src/feature/rend/rendservice.c:upload_service_descriptor() 111
problem function-size /src/feature/rend/rendservice.c:rend_consider_services_intro_points() 169
problem function-size /src/feature/stats/rephist.c:rep_hist_load_mtbf_data() 185
problem function-size /src/feature/stats/rephist.c:rep_hist_format_exit_stats() 148
problem function-size /src/lib/compress/compress.c:tor_compress_impl() 133
problem function-size /src/lib/compress/compress_zstd.c:tor_zstd_compress_process() 126
problem function-size /src/lib/container/smartlist.c:smartlist_bsearch_idx() 109
problem function-size /src/lib/crypt_ops/crypto_rand.c:crypto_strongest_rand_syscall() 102
problem function-size /src/lib/encoding/binascii.c:base64_encode() 107
problem function-size /src/lib/encoding/confline.c:parse_config_line_from_str_verbose() 119
problem function-size /src/lib/encoding/cstring.c:unescape_string() 108
problem function-size /src/lib/fs/dir.c:check_private_dir() 231
problem function-size /src/lib/log/log.c:parse_log_severity_config() 101
problem function-size /src/lib/math/prob_distr.c:sample_uniform_interval() 145
problem function-size /src/lib/net/address.c:tor_addr_parse_mask_ports() 198
problem function-size /src/lib/net/address.c:tor_addr_compare_masked() 111
problem function-size /src/lib/net/inaddr.c:tor_inet_pton() 107
problem function-size /src/lib/net/resolve.c:tor_addr_lookup() 110
problem function-size /src/lib/net/socketpair.c:tor_ersatz_socketpair() 102
problem function-size /src/lib/osinfo/uname.c:get_uname() 116
problem function-size /src/lib/process/process_unix.c:process_unix_exec() 220
problem function-size /src/lib/process/process_win32.c:process_win32_exec() 133
problem function-size /src/lib/process/process_win32.c:process_win32_create_pipe() 112
problem function-size /src/lib/process/restrict.c:set_max_file_descriptors() 102
problem function-size /src/lib/process/setuid.c:switch_id() 156
problem function-size /src/lib/sandbox/sandbox.c:prot_strings() 104
problem function-size /src/lib/string/scanf.c:tor_vsscanf() 112
problem function-size /src/lib/tls/tortls_nss.c:tor_tls_context_new() 153
problem function-size /src/lib/tls/tortls_openssl.c:tor_tls_context_new() 171
problem function-size /src/lib/tls/x509_nss.c:tor_tls_create_certificate_internal() 126
problem function-size /src/tools/tor-gencert.c:parse_commandline() 111
problem function-size /src/tools/tor-resolve.c:build_socks5_resolve_request() 104
problem function-size /src/tools/tor-resolve.c:do_resolve() 173
problem function-size /src/tools/tor-resolve.c:main() 112