2 #define CK(_x) void _x(int id);
6 CK(register_db_call_marker
) /* always has to be first */
7 CK(register_mtag_data
) /* before smatch_extra to clear cache at start of function */
8 CK(register_param_used
) /* get_state_hooks have to be registered before smatch_extra */
9 CK(register_container_of
)
10 CK(register_container_of2
)
11 CK(register_smatch_extra
)
12 CK(register_smatch_extra_links
)
13 CK(register_buf_comparison
)
14 CK(register_buf_comparison_links
)
15 CK(register_buf_comparison2
)
16 CK(register_modification_hooks
)
20 * Implications should probably be after all the modification and smatch_extra
24 CK(register_implications
)
25 CK(register_function_hooks_early
)
26 CK(register_definition_db_callbacks
)
27 CK(register_project
) /* has to be early to set up some global stuff */
28 CK(register_untracked_param
)
29 CK(register_param_compare_limit
)
30 CK(register_param_compare_limit_links
)
31 CK(register_returns_early
)
33 CK(register_param_cleared
) /* param_set relies on param_cleared */
34 CK(register_param_limit
) /* param limit has to be before param_set */
35 CK(register_param_set
)
37 CK(register_dereferences
)
38 CK(register_smatch_ignore
)
41 CK(register_strlen_equiv
)
43 CK(register_parse_call_math
)
44 CK(register_param_filter
)
45 CK(register_struct_assignment
)
46 CK(register_comparison
)
47 CK(register_comparison_links
)
48 CK(register_comparison_inc_dec
)
49 CK(register_comparison_inc_dec_links
)
50 CK(register_function_ptrs
)
52 CK(register_start_states
)
54 CK(register_data_source
)
55 CK(register_common_functions
)
56 CK(register_function_info
)
57 CK(register_type_links
)
58 CK(register_impossible
)
59 CK(register_impossible_return
)
61 CK(register_integer_overflow
)
62 CK(register_integer_overflow_links
)
63 CK(register_real_absolute
)
64 CK(register_imaginary_absolute
)
66 CK(register_power_of_two
)
67 CK(register_fn_arg_link
)
68 CK(register_parameter_names
)
69 CK(register_return_to_param
)
70 CK(register_return_to_param_links
)
71 CK(register_constraints
)
72 CK(register_constraints_required
)
73 CK(register_about_fn_ptr_arg
)
76 CK(register_param_to_mtag_data
)
77 CK(register_array_values
)
78 CK(register_nul_terminator
)
79 CK(register_nul_terminator_param_set
)
80 CK(register_statement_count
)
81 CK(register_fresh_alloc
)
83 CK(register_unconstant_macros
)
84 CK(register_state_assigned
)
85 CK(register_points_to_container
)
86 CK(register_allocations
)
88 CK(register_goto_tracker
)
90 CK(register_refcount_info
)
91 CK(register_kernel_atomic_dec_test_path
)
93 CK(register_kernel_user_data
)
94 CK(register_kernel_user_data2
)
95 CK(register_points_to_user_data
)
97 CK(register_kernel_host_data
)
98 CK(register_points_to_host_data
)
99 CK(register_kernel_netdev_priv
)
100 CK(register_kernel_err_ptr
)
101 CK(register_kernel_has_devm_cleanup
)
102 CK(register_kernel_task_state
)
103 CK(register_kernel_task_state_info
)
110 CK(check_check_deref
)
111 CK(check_dereferences_param
)
112 CK(check_index_overflow
)
113 CK(check_index_overflow_loop_marker
)
114 CK(check_testing_index_after_use
)
115 CK(check_memcpy_overflow
)
116 CK(check_strcpy_overflow
)
117 CK(check_sprintf_overflow
)
118 CK(check_snprintf_overflow
)
119 CK(check_allocating_enough_data
)
122 CK(check_allocation_funcs
)
123 CK(check_frees_argument
)
124 CK(check_deref_check
)
126 CK(check_unsigned_lt_zero
)
129 CK(check_dma_on_stack
)
130 CK(check_param_mapper
)
132 CK(check_dev_queue_xmit
)
137 CK(check_resource_size
)
138 CK(check_release_resource
)
139 CK(check_proc_create
)
140 CK(check_freeing_null
)
141 CK(check_frees_param
)
143 CK(check_frees_param_strict
)
144 CK(check_free_strict
)
149 CK(check_return_efault
)
152 CK(check_unwind_info
)
153 CK(check_kmalloc_to_bugon
)
154 CK(check_platform_device_put
)
156 CK(check_return_enomem
)
157 CK(check_get_user_overflow
)
158 CK(check_get_user_overflow2
)
159 CK(check_access_ok_math
)
160 CK(check_container_of
)
161 CK(check_input_free_device
)
164 CK(check_logical_instead_of_bitwise
)
165 CK(check_kmalloc_wrong_size
)
166 CK(check_pointer_math
)
168 CK(check_macro_side_effects
)
170 CK(check_not_passing_gfp
)
171 CK(check_return_cast
)
173 CK(check_passes_sizeof
)
174 CK(check_assign_vs_compare
)
175 CK(check_array_condition
)
176 CK(check_struct_type
)
177 CK(check_64bit_shift
)
178 CK(check_wrong_size_arg
)
179 CK(check_cast_assign
)
180 CK(check_double_checking
)
181 CK(check_shift_to_zero
)
183 CK(check_unreachable
)
184 CK(check_missing_error_code
)
185 CK(check_missing_error_code2
)
186 CK(check_no_if_block
)
187 CK(check_buffer_too_small_for_struct
)
188 CK(check_uninitialized
)
189 CK(check_signed_integer_overflow_check
)
190 CK(check_continue_vs_break
)
191 CK(check_impossible_mask
)
192 CK(check_postop_timeout
)
193 CK(check_select_type
)
195 CK(check_preempt_info
)
197 CK(check_scheduling_in_atomic
)
198 CK(check_checking_for_null_instead_of_err_ptr
)
199 CK(check_syscall_arg_type
)
200 CK(register_param_bits_set
)
201 CK(register_param_bits_clear
)
202 CK(check_do_while_loop_limit
)
204 CK(check_divide_condition
)
206 CK(check_impossible_compare
)
207 CK(check_always_true
)
209 /* <- your test goes here */
210 /* CK(register_template) */
212 /* kernel specific */
213 CK(check_kernel_printf
)
215 CK(check_puts_argument
)
217 CK(check_err_ptr_deref
)
218 CK(check_expects_err_ptr
)
219 CK(check_return_negative_var
)
223 CK(check_wait_for_common
)
224 CK(check_bogus_irqrestore
)
225 CK(check_zero_to_err_ptr
)
226 CK(check_freeing_devm
)
227 CK(check_off_by_one_relative
)
232 CK(check_nospec_barrier
)
234 CK(check_spectre_second_half
)
235 CK(check_implicit_dependencies
)
236 CK(check_bogus_address_param
)
237 CK(check_pm_runtime_get_sync
)
238 CK(check_iterator_outside_loop
)
240 CK(check_list_add_late
)
241 CK(check_sscanf_return
)
242 CK(check_kvmalloc_array_zero
)
243 CK(check_returns_negative_error_code
)
244 CK(check_platform_get_irq_return
)
245 CK(check_kvmalloc_NOFS
)
246 CK(check_uaf_netdev_priv
)
247 //CK(check_host_input)
248 CK(check_direct_return_instead_of_goto
)
249 CK(check_negative_error_code_type_promoted
)
251 /* wine specific stuff */
252 CK(check_wine_filehandles
)
255 CK(check_arm64_tagged
)
257 /* illumos specific */
258 CK(check_all_func_returns
)
261 #include "check_list_local.h"
264 CK(register_stored_conditions
)
265 CK(register_stored_conditions_links
)
266 CK(register_parsed_conditions
)
268 CK(register_buf_size_late
)
269 CK(register_smatch_extra_late
)
270 CK(register_assigned_expr
) /* This is used by smatch_extra.c so it has to come really late */
271 CK(register_assigned_expr_links
)
272 CK(register_modification_hooks_late
) /* has to come after smatch_extra */
273 CK(register_param_key
) /* has to come after smatch_extra */
274 CK(register_comparison_late
) /* has to come after modification_hooks_late */
275 CK(register_function_hooks
)
276 CK(register_definition_db_callbacks_late
) /* has to come after register_function_hooks() */
277 CK(check_kernel
) /* this is overwriting stuff from smatch_extra_late */