• Home
  • Raw
  • Download

Lines Matching refs:data

162 	struct overflow_data *data = _data;  in __ubsan_handle_divrem_overflow()  local
165 if (suppress_report(&data->location)) in __ubsan_handle_divrem_overflow()
168 ubsan_prologue(&data->location, "division-overflow"); in __ubsan_handle_divrem_overflow()
170 val_to_string(rhs_val_str, sizeof(rhs_val_str), data->type, rhs); in __ubsan_handle_divrem_overflow()
172 if (type_is_signed(data->type) && get_signed_val(data->type, rhs) == -1) in __ubsan_handle_divrem_overflow()
174 rhs_val_str, data->type->type_name); in __ubsan_handle_divrem_overflow()
182 static void handle_null_ptr_deref(struct type_mismatch_data_common *data) in handle_null_ptr_deref() argument
184 if (suppress_report(data->location)) in handle_null_ptr_deref()
187 ubsan_prologue(data->location, "null-ptr-deref"); in handle_null_ptr_deref()
190 type_check_kinds[data->type_check_kind], in handle_null_ptr_deref()
191 data->type->type_name); in handle_null_ptr_deref()
196 static void handle_misaligned_access(struct type_mismatch_data_common *data, in handle_misaligned_access() argument
199 if (suppress_report(data->location)) in handle_misaligned_access()
202 ubsan_prologue(data->location, "misaligned-access"); in handle_misaligned_access()
205 type_check_kinds[data->type_check_kind], in handle_misaligned_access()
206 (void *)ptr, data->type->type_name); in handle_misaligned_access()
207 pr_err("which requires %ld byte alignment\n", data->alignment); in handle_misaligned_access()
212 static void handle_object_size_mismatch(struct type_mismatch_data_common *data, in handle_object_size_mismatch() argument
215 if (suppress_report(data->location)) in handle_object_size_mismatch()
218 ubsan_prologue(data->location, "object-size-mismatch"); in handle_object_size_mismatch()
220 type_check_kinds[data->type_check_kind], in handle_object_size_mismatch()
222 pr_err("for an object of type %s\n", data->type->type_name); in handle_object_size_mismatch()
226 static void ubsan_type_mismatch_common(struct type_mismatch_data_common *data, in ubsan_type_mismatch_common() argument
232 handle_null_ptr_deref(data); in ubsan_type_mismatch_common()
233 else if (data->alignment && !IS_ALIGNED(ptr, data->alignment)) in ubsan_type_mismatch_common()
234 handle_misaligned_access(data, ptr); in ubsan_type_mismatch_common()
236 handle_object_size_mismatch(data, ptr); in ubsan_type_mismatch_common()
241 void __ubsan_handle_type_mismatch(struct type_mismatch_data *data, in __ubsan_handle_type_mismatch() argument
245 .location = &data->location, in __ubsan_handle_type_mismatch()
246 .type = data->type, in __ubsan_handle_type_mismatch()
247 .alignment = data->alignment, in __ubsan_handle_type_mismatch()
248 .type_check_kind = data->type_check_kind in __ubsan_handle_type_mismatch()
257 struct type_mismatch_data_v1 *data = _data; in __ubsan_handle_type_mismatch_v1() local
259 .location = &data->location, in __ubsan_handle_type_mismatch_v1()
260 .type = data->type, in __ubsan_handle_type_mismatch_v1()
261 .alignment = 1UL << data->log_alignment, in __ubsan_handle_type_mismatch_v1()
262 .type_check_kind = data->type_check_kind in __ubsan_handle_type_mismatch_v1()
271 struct out_of_bounds_data *data = _data; in __ubsan_handle_out_of_bounds() local
274 if (suppress_report(&data->location)) in __ubsan_handle_out_of_bounds()
277 ubsan_prologue(&data->location, "array-index-out-of-bounds"); in __ubsan_handle_out_of_bounds()
279 val_to_string(index_str, sizeof(index_str), data->index_type, index); in __ubsan_handle_out_of_bounds()
281 data->array_type->type_name); in __ubsan_handle_out_of_bounds()
288 struct shift_out_of_bounds_data *data = _data; in __ubsan_handle_shift_out_of_bounds() local
289 struct type_descriptor *rhs_type = data->rhs_type; in __ubsan_handle_shift_out_of_bounds()
290 struct type_descriptor *lhs_type = data->lhs_type; in __ubsan_handle_shift_out_of_bounds()
295 if (suppress_report(&data->location)) in __ubsan_handle_shift_out_of_bounds()
298 ubsan_prologue(&data->location, "shift-out-of-bounds"); in __ubsan_handle_shift_out_of_bounds()
330 struct unreachable_data *data = _data; in __ubsan_handle_builtin_unreachable() local
331 ubsan_prologue(&data->location, "unreachable"); in __ubsan_handle_builtin_unreachable()
340 struct invalid_value_data *data = _data; in __ubsan_handle_load_invalid_value() local
343 if (suppress_report(&data->location)) in __ubsan_handle_load_invalid_value()
346 ubsan_prologue(&data->location, "invalid-load"); in __ubsan_handle_load_invalid_value()
348 val_to_string(val_str, sizeof(val_str), data->type, val); in __ubsan_handle_load_invalid_value()
351 val_str, data->type->type_name); in __ubsan_handle_load_invalid_value()
364 struct alignment_assumption_data *data = _data; in __ubsan_handle_alignment_assumption() local
367 if (suppress_report(&data->location)) in __ubsan_handle_alignment_assumption()
370 ubsan_prologue(&data->location, "alignment-assumption"); in __ubsan_handle_alignment_assumption()
374 align, offset, data->type->type_name); in __ubsan_handle_alignment_assumption()
377 align, data->type->type_name); in __ubsan_handle_alignment_assumption()