Franky/Threadsafe checklist
From SambaWiki
Checklist of areas likely requiring validatation of thread safety.
Bugs to review
Global variables in the BSS and Data segments which must be reviewed to see if they require any protection in a threaded environment.
NOTE: After implementing thread protection on one of these, or determining that it doesn't require any changes, move the entry into the "Already Reviewed" section at the bottom of this page, and make a note of your specific findings or work done.
- b Globals
- b ServiceHash
- b ServicePtrs
- b __nwrap_cache_gr
- b __nwrap_cache_pw
- b already_perm.63808
- b already_perm.63873
- b autobind_start
- b autobind_start_init
- b bGlobalOnly
- b bLoaded
- b backend
- b backends
- b buf.4855
- b bytes_since_reseed
- b cache
- b cache
- b cache_tree
- b call_id.64160
- b called.64160
- b charsets
- b classname_table
- b cmdline_lp_ctx
- b completed.6997
- b conf_ctx.72086
- b conf_last_csn
- b config_backend
- b cont_fn
- b conv_handles
- b conv_silent
- b corepath
- b count.63802
- b counter
- b counter.63802
- b current_lang
- b current_user
- b current_user_info
- b db
- b db
- b db_ctx
- b db_ctx.63797
- b db_sam
- b dbf
- b debug_count
- b debug_num_classes
- b debugf
- b default_server_announce
- b defaults_saved
- b depth.67473
- b done_init.64458
- b done_reseed
- b dtor_idx.6999
- b dyn_BINDIR
- b dyn_CACHEDIR
- b dyn_CODEPAGEDIR
- b dyn_CONFIGFILE
- b dyn_LIBDIR
- b dyn_LMHOSTSFILE
- b dyn_LOCKDIR
- b dyn_LOGFILEBASE
- b dyn_MODULESDIR
- b dyn_NCALRPCDIR
- b dyn_PIDDIR
- b dyn_PRIVATE_DIR
- b dyn_SBINDIR
- b dyn_SHLIBEXT
- b dyn_SMB_PASSWD_FILE
- b dyn_STATEDIR
- b dyn_SWATDIR
- b extra_time_offset
- b f.6068
- b file_lists
- b format_bufr
- b format_pos
- b global_cache
- b global_clobber_region_function
- b global_clobber_region_line
- b global_in_nmbd
- b global_lock_array
- b global_machine_password_needs_changing
- b global_sam_sid
- b global_tfp
- b global_ts
- b got_alarm
- b got_major.77004
- b got_minor.77023
- b gotalarm
- b gotalarm
- b gotintr
- b h.6067
- b hash
- b i.6069
- b iNumServices
- b iServiceIndex
- b idmap_gid_high
- b idmap_gid_low
- b idmap_uid_high
- b idmap_uid_low
- b in_client
- b include_depth
- b initial_gid
- b initial_uid
- b initialised
- b initialised.63872
- b initialized
- b initialized
- b initialized
- b initialized.4388
- b initialized.5513
- b initialized.6065
- b initialized.63799
- b initialized.63806
- b initialized.63982
- b initialized.64395
- b initialized.64809
- b invalid_services
- b last_dns_check.65080
- b last_dns_status.65081
- b lastt
- b ldb
- b ldb_backends
- b local_interfaces
- b local_machine
- b log_overflow
- b lowcase_table
- b lowcase_table_use_unmap
- b mapped_file.64056
- b msg.63951
- b num_invalid_services
- b nwrap_gr_global
- b nwrap_pw_global
- b old_handler
- b once_mutex
- b outfile
- b override_logfile
- b p.6070
- b pdb.64265
- b pdb_event_ctx
- b pipe_read
- b pipe_written
- b popen_chain
- b posix_cifsx_locktype
- b posix_default_lock_was_set
- b posix_pathnames
- b probed_ifaces
- b ra_type
- b regdb
- b regdb_refcount
- b registered_modules
- b remote_arch_str
- b remote_machine
- b reseed_callback
- b reseed_callback_userdata
- b result.76870
- b ret.66976
- b s.6066
- b saved_egid
- b saved_euid
- b saved_rgid
- b saved_ruid
- b select_pipe
- b server_role
- b server_zone_offset
- b share_db
- b sig_state
- b smb_my_netbios_names
- b smb_myname
- b smb_myworkgroup
- b smb_num_netbios_names
- b smb_scope
- b smb_user_name
- b smbc_compat_fd_avail
- b smbc_compat_fd_in_use
- b smbc_compat_initialized
- b smbc_compat_nextfd
- b smbldap_state_lookup_list
- b sockets
- b sort_ip
- b spoolss_state
- b start_time_hires
- b statcont
- b stdout_logging
- b t
- b tdb
- b tdb.65419
- b tdb_list
- b tdb_list
- b tdbd
- b tdbsam_filename
- b tevent_abort_fn
- b tevent_backends
- b tevent_default_backend
- b tf.64872
- b tmp_debug_ctx
- b total_probed
- b try_splice_call.63895
- b ts_initialized
- b upcase_table
- b upcase_table_use_unmap
- b v.5512
- b valid_table
- b valid_table_use_unmap
- b zeros.64945
- b zeros.65144
- d AllowDebugChange
- d DEBUGLEVEL_CLASS
- d DEBUGLEVEL_CLASS_ISSET
- d Protocol
- d __CTOR_END__
- d __CTOR_LIST__
- d __DTOR_END__
- d __DTOR_LIST__
- d __JCR_END__
- d __JCR_LIST__
- d __dso_handle
- d _x_stderr
- d _x_stdin
- d _x_stdout
- d account_policy_names
- d anon_sid_array
- d anonymous_token
- d asq_ops
- d attr.69925
- d attrib_map_to_delete_v22
- d attrib_map_to_delete_v30
- d attrib_map_v22
- d attrib_map_v30
- d attrs.64804
- d attrs.65036
- d audit_category_tab
- d bAllowIncludeRegistry
- d bInGlobalSection
- d bufsize.4856
- d builtin_aliases
- d builtin_functions
- d builtin_registry_paths
- d builtin_registry_values
- d creator_owner_users
- d dcerpc_faults
- d debug_all_class_hack
- d debug_all_class_isset_hack
- d debug_auto_add_unknown_class
- d debug_level
- d debug_warn_unknown_class
- d default_classname_table
- d dominfo_attr_list
- d dos_err_strs
- d dos_errs
- d dos_msgs
- d drsblobs_authservice_strings
- d drsblobs_authservices
- d drsblobs_calls
- d drsblobs_endpoint_strings
- d drsblobs_endpoints
- d drsuapi_authservice_strings
- d drsuapi_authservices
- d drsuapi_calls
- d drsuapi_endpoint_strings
- d drsuapi_endpoints
- d dssetup_authservice_strings
- d dssetup_authservices
- d dssetup_calls
- d dssetup_endpoint_strings
- d dssetup_endpoints
- d enum_acl_compat_vals
- d enum_announce_as
- d enum_bool_auto
- d enum_case
- d enum_config_backend
- d enum_csc_policy
- d enum_kerberos_method
- d enum_ldap_passwd_sync
- d enum_ldap_sasl_wrapping
- d enum_ldap_ssl
- d enum_map_readonly
- d enum_map_to_guest
- d enum_printing
- d enum_protocol
- d enum_security
- d enum_smb_signing_vals
- d epmapper_authservice_strings
- d epmapper_authservices
- d epmapper_calls
- d epmapper_endpoint_strings
- d epmapper_endpoints
- d epoll_event_ops
- d err_classes
- d eventlog_authservice_strings
- d eventlog_authservices
- d eventlog_calls
- d eventlog_endpoint_strings
- d eventlog_endpoints
- d everyone_users
- d fd.6239
- d groupmap_attr_list
- d groupmap_attr_list_to_delete
- d hard_msgs
- d idpool_attr_list
- d in_fd
- d initshutdown_authservice_strings
- d initshutdown_authservices
- d initshutdown_calls
- d initshutdown_endpoint_strings
- d initshutdown_endpoints
- d ldb_backend
- d ldb_changetypes
- d ldb_default_attrib_handler
- d ldb_standard_attribs
- d longvar_table
- d lsarpc_authservice_strings
- d lsarpc_authservices
- d lsarpc_calls
- d lsarpc_endpoint_strings
- d lsarpc_endpoints
- d ltdb_ops
- d ltdb_valid_attr_flags
- d major_version.77005
- d minor_version.77024
- d my_vnn
- d mypid
- d ncacn_options
- d ndr_err_code_strings
- d ndr_table_drsblobs
- d ndr_table_drsuapi
- d ndr_table_dssetup
- d ndr_table_epmapper
- d ndr_table_eventlog
- d ndr_table_initshutdown
- d ndr_table_lsarpc
- d ndr_table_netdfs
- d ndr_table_netlogon
- d ndr_table_ntsvcs
- d ndr_table_rpcecho
- d ndr_table_samr
- d ndr_table_spoolss
- d ndr_table_srvsvc
- d ndr_table_svcctl
- d ndr_table_winreg
- d ndr_table_wkssvc
- d netdfs_authservice_strings
- d netdfs_authservices
- d netdfs_calls
- d netdfs_endpoint_strings
- d netdfs_endpoints
- d netlogon_authservice_strings
- d netlogon_authservices
- d netlogon_calls
- d netlogon_endpoint_strings
- d netlogon_endpoints
- d nmb_header_opcode_names
- d no_str.71616
- d nt_authority_users
- d nt_err_desc
- d nt_errs
- d ntlmssp_callbacks
- d ntsvcs_authservice_strings
- d ntsvcs_authservices
- d ntsvcs_calls
- d ntsvcs_endpoint_strings
- d ntsvcs_endpoints
- d objectclass_ops
- d operational_ops
- d paged_ops
- d parm_num.73088
- d parm_table
- d parse_tree_sub
- d pipe_names
- d pipefd.63894
- d privs
- d rap_errmap
- d rdn_name_ops
- d regdb_ops
- d remote_proto
- d rpcecho_authservice_strings
- d rpcecho_authservices
- d rpcecho_calls
- d rpcecho_endpoint_strings
- d rpcecho_endpoints
- d s3_event_ops
- d sDefault
- d samr_authservice_strings
- d samr_authservices
- d samr_calls
- d samr_endpoint_strings
- d samr_endpoints
- d search_sub
- d select_event_ops
- d server_msgs
- d server_sort_ops
- d sid_name_type
- d sidmap_attr_list
- d smbconf_ops_reg
- d smbconf_ops_txt
- d smbconf_reg_ops
- d socket_options
- d special_domains
- d special_values.65122
- d spoolss_authservice_strings
- d spoolss_authservices
- d spoolss_calls
- d spoolss_endpoint_strings
- d spoolss_endpoints
- d srv_role_tab
- d srvsvc_authservice_strings
- d srvsvc_authservices
- d srvsvc_calls
- d srvsvc_endpoint_strings
- d srvsvc_endpoints
- d standard_values.65123
- d static_init_fns.64808
- d std_event_ops
- d svcctl_authservice_strings
- d svcctl_authservices
- d svcctl_calls
- d svcctl_endpoint_strings
- d svcctl_endpoints
- d system_sid_array
- d system_token
- d tdb_backend
- d tdgram_bsd_ops
- d tf
- d transports
- d tsocket_address_bsd_ops
- d tstream_bsd_ops
- d urand_fd
- d winreg_authservice_strings
- d winreg_authservices
- d winreg_calls
- d winreg_endpoint_strings
- d winreg_endpoints
- d wkssvc_authservice_strings
- d wkssvc_authservices
- d wkssvc_calls
- d wkssvc_endpoint_strings
- d wkssvc_endpoints
- d x_stderr
- d x_stdin
- d x_stdout
- d yes_str.71615
Already Reviewed
- b SMBC_initialized
- Created smbc_module_init() function. SMBC_initialized is now the boolean controlling once-initialization for calls to the new function.
- b initialized_ctx_count
- protected by mutex